2012-04-19 8 views
5

なぜJava Pointクラスが2つのintパラメータを取り、getX()メソッドとgetY()メソッドがdoubleを返すのかと混同します。 私は..Java Point、getX()とpoint.xの違い

p.getX(); 

を呼ぶとしたらそれは4.0を返しますたとえば、私はポイント

Point p = new Point(4,6); 

を定義することができます。私は

p.x; 

をコールした場合、私は、このために4

いかなる理由になるだろうか?

+3

ほとんどの場合、後方互換性と、「ポイント」が比較的長い期間にわたって一緒にハッキングされていることが原因です。 –

答えて

3

Pointのスーパークラスであり、彼らは浮動小数点値で動作できるようにする必要があるPoint2Dを拡張Point2D.DoublePoint2D.Floatクラスがあります。なお、setLocation(double, double)もあります。

Point2Dは、それら全てがdoublesを使用して、なぜPoint署名でdouble Sでそれらを実装しなければならない理由である、ポイントのための距離計算を実装する抽象クラスであり、そしてsetLocationgetX、及びgetYは抽象メソッドです。

+0

xとyの両方をintに初期化する必要がありますが、xとyの位置をdoubleに設定する方法が不思議です。 –

+0

'Point'クラスの' setLocation'はそれを最も近い整数に丸めるので、 'Point'は常に整数座標を持ちます。 – trutheality

関連する問題