2016-06-07 61 views
0

假設已經定義了一個類Point2D用於存儲具有x和y座標的二維點(都是雙精度)。這個類包含以下成員:與雙精度對比

enter image description here

你的任務是通過加上一個適當的compareTo方法修改類是可比較的。點應該相對於它們與原點的距離進行比較,離原點越近的點越少。兩點之間的距離定義爲x和y座標之差的平方和的平方根。

我不確定如何實現compareTo方法,當有雙重。 用整數和字符串我會用下面的語法:

public int compareTo(object name) { 
    // comparing integers 
    if (this.object != other.object) { 
     return this.field - other.field; 
    } else { // comparing strings 
     return toString().compareTo(other.toString()); 
    } 
} 

有兩個雙打之間的比較時,如貨幣或以上Point類廣義的實施策略?

+0

因此就'compareTo()'而言,'5,0'和'0,5'是「相等的」,是吧?猜測'Point.compareTo()'的javadoc應該說*「注意:這個類的自然順序與equals不一致。」*,如[Comparable.compareTo()'](https:/ javadoc) /docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html#compareTo%28T%29)。 – Andreas

回答