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, getX
và getY
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 getX
và getY
. 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ừ getX
và getY
.