定义一个接口CompareObject,具有方法compareTo()用于比较两个对象。 定义一个类Position从CompareObject派生而来,有x,y属性表示其坐标表,该类实现compareTo()方法,用于比较两个对象距离原点(0,0)的距离。 定义测试类测试Position类的compareTo()方法。
时间: 2024-02-25 22:54:41 浏览: 81
知识点接口的定义-c#基础语法
好的,我理解了你的要求。以下是实现CompareObject接口和Position类的代码示例:
```java
// CompareObject接口
interface CompareObject {
public int compareTo(Object o);
}
// Position类
class Position implements CompareObject {
private int x;
private int y;
public Position(int x, int y) {
this.x = x;
this.y = y;
}
// 计算距离原点的距离
private double distanceToOrigin() {
return Math.sqrt(x * x + y * y);
}
// 实现CompareObject接口的compareTo方法
@Override
public int compareTo(Object o) {
Position other = (Position) o;
if (this.distanceToOrigin() < other.distanceToOrigin()) {
return -1;
} else if (this.distanceToOrigin() > other.distanceToOrigin()) {
return 1;
} else {
return 0;
}
}
}
// 测试类
public class Test {
public static void main(String[] args) {
Position p1 = new Position(3, 4);
Position p2 = new Position(1, 2);
System.out.println(p1.compareTo(p2)); // 输出1,表示p1比p2距离原点更远
}
}
```
在这个例子中,CompareObject接口定义了一个compareTo方法,用于比较两个对象。Position类从CompareObject接口派生而来,实现了该接口的compareTo方法。在Position类的compareTo方法中,我们计算了两个Position对象距离原点的距离,并将它们进行比较。最后,我们使用测试类测试了Position类的compareTo方法。
阅读全文