2012-03-05 14 views
7

Như bạn có thể thấy trong Tài liệu Oracle cho java.awt.Point, x và y được lưu trữ là int. Tuy nhiên, getXgetY trả lại double. Mặc dù có phương thức setLocation có 2 loại double nhưng không có hàm tạo nào. Hơn nữa, double bị cắt ngắn thành int nội bộ.Tại sao java.awt.Point cung cấp các phương thức để thiết lập và tăng gấp đôi nhưng lưu trữ x và y là int?

Có lý do chính đáng cho việc này không? Bạn có thể tránh một dàn diễn viên trên setLocation bằng cách có một phương pháp mất double loại, nhưng bạn có vấn đề ngược lại khi bạn gọi getXgetY. Ngoài ra còn có sự trình bày sai về độ chính xác của lớp Point bằng cách trả lại một số double từ getXgetY.

Trả lời

7

Vì nó mở rộng từ java.awt.geom.Point2D được sử dụng trong lớp trừu tượng Graphics2D. Nó đã được thực hiện theo cách này vì lý do tương thích kể từ trước đó, java chỉ hỗ trợ java.awt.Graphics trong đó tất cả các phương thức đều dựa trên int.

Các vấn đề liên quan