2016-06-07 110 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

回答