Jestem zaskoczony, aby zobaczyć, że getters z height
i width
członków ma return
typ double
, aczkolwiek są one int
. Ponadto setSize
metoda z podwójnym parametrów ma następującą definicję:Metoda typ zwracany w klasie wymiar 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);
}
Proszę spojrzeć na Dimension klasie. Powyższy komentarz mówi, że wartości nie mogą przekroczyć wartości Integer.MAX_VALUE. Czemu? Dlaczego mamy między sobą double
? Czy istnieje jakiś subtelny powód? Czy ktoś może mi to wyjaśnić? Przepraszam za moje naleganie!
To wszystko? Dlaczego mamy gettery z 'double' jako' return' type? Dowolne użycie? – Ahamed
Nie znam dokładnego powodu, dla którego zwracają się dwukrotnie (prawdopodobnie dlatego, że gdy mówimy o wymiarach, mówimy o precyzji i podwójności jest częściej używany w tych przypadkach), ale dla seterów jest to po prostu przeciążenie metody do pomóc użytkownikowi. – talnicolas
Dziękuję za odpowiedź, nie sądzę, że 'double's o wartości int pomoże w precyzji. Mam na myśli podwójne 1517.00 równe 1517, więc musi być jakiś powód? – Ahamed