Tôi ngạc nhiên khi thấy rằng getters của height
và width
thành viên có return
loại double
, mặc dù chúng là int
. Hơn nữa, phương pháp setSize
với các thông số đôi có định nghĩa sau đây:Loại trả về phương thức trong lớp Thứ nguyên của java.awt
/**
* Sets the size of this <code>Dimension</code> object to
* the specified width and height in double precision.
* Note that if <code>width</code> or <code>height</code>
* are larger than <code>Integer.MAX_VALUE</code>, they will
* be reset to <code>Integer.MAX_VALUE</code>.
*
* @param width the new width for the <code>Dimension</code> object
* @param height the new height for the <code>Dimension</code> object
*/
public void setSize(double width, double height) {
this.width = (int) Math.ceil(width);
this.height = (int) Math.ceil(height);
}
hãy có một cái nhìn tại Dimension lớp. Nhận xét trên cho biết các giá trị không thể vượt quá Integer.MAX_VALUE. Tại sao? Tại sao chúng tôi có double
ở giữa? Có lý do tinh tế nào không? Bất cứ ai có thể vui lòng giải thích điều này với tôi? Xin lỗi vì sự khăng khăng của tôi!
Thats it? Tại sao chúng ta có getters với 'double' như' return' type? Bất kỳ sử dụng? – Ahamed
Tôi không biết lý do chính xác tại sao họ trở lại gấp đôi (có lẽ vì khi nói về kích thước, bạn đang nói về độ chính xác và gấp đôi được sử dụng nhiều hơn trong những trường hợp này), nhưng đối với những người định cư, nó chỉ là một số phương pháp quá tải giúp người dùng. – talnicolas
Cảm ơn bạn đã trả lời của bạn, tôi không nghĩ rằng 'double' s có giá trị int sẽ giúp chính xác. Tôi có nghĩa là đôi 1517,00 bằng 1517, vì vậy phải có một số lý do? – Ahamed