定义一个接口 CompareObject,具有方法 compareTo0用于比较防个对象。 定义一个类 Position 从 CompareObject 派生而来,有x和y属性表不其坐标,该类实现 compare To0方法,用于比较两个对象距离原点(0,0)的距离。 定义测试类测试 Position 类的 compare To0方法
时间: 2024-01-21 22:19:19 浏览: 61
String类下compareTo()与compare()方法比较
5星 · 资源好评率100%
下面是 CompareObject 接口和 Position 类的代码实现:
```java
interface CompareObject {
public int compareTo0(Object o);
}
class Position implements CompareObject {
private int x;
private int y;
public Position(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
@Override
public int compareTo0(Object o) {
if (o instanceof Position) {
Position p = (Position) o;
int distance1 = this.x * this.x + this.y * this.y;
int distance2 = p.x * p.x + p.y * p.y;
if (distance1 > distance2) {
return 1;
} else if (distance1 < distance2) {
return -1;
} else {
return 0;
}
} else {
throw new IllegalArgumentException("Object is not an instance of Position");
}
}
}
```
下面是测试类的代码实现:
```java
public class PositionTest {
public static void main(String[] args) {
Position p1 = new Position(3, 4);
Position p2 = new Position(-1, 5);
System.out.println(p1.compareTo0(p2)); // Output: -1
System.out.println(p2.compareTo0(p1)); // Output: -1
}
}
```
以上代码实现了 CompareObject 接口和 Position 类,以及测试类 PositionTest。测试类中创建了两个 Position 对象,分别计算它们距离原点(0,0)的距离,并比较它们的大小关系。输出结果表明,p1 距离原点更近,比 p2 小,因此 compareTo0 方法返回 -1。
阅读全文