定义一个接口 CompareObject,具有方法 compareTo0用于比较两个对象。 定义一个类 Position 从 CompareObject 派生而来,有x和y属性表示其坐标, 该类实现 compare To0方法,用于比较两个对象距离原点(0,0)的距离。 定义测试类测试 Position 类的 compareTo0方法。用简单的Java语句来做
时间: 2023-12-10 07:39:03 浏览: 108
下面是 CompareObject 接口的定义:
```java
public interface CompareObject {
int compareTo0(Object o); // 比较两个对象
}
```
然后是 Position 类的定义:
```java
public class Position implements CompareObject {
private double x; // 坐标 x
private double y; // 坐标 y
// 构造函数
public Position(double x, double y) {
this.x = x;
this.y = y;
}
// 计算距离原点的距离
private double distance() {
return Math.sqrt(x * x + y * y);
}
@Override
public int compareTo0(Object o) {
Position other = (Position) o;
double diff = this.distance() - other.distance();
if (diff > 0) {
return 1;
} else if (diff < 0) {
return -1;
} else {
return 0;
}
}
}
```
最后是测试类的定义:
```java
public class Test {
public static void main(String[] args) {
Position p1 = new Position(3, 4);
Position p2 = new Position(5, 12);
int result = p1.compareTo0(p2);
if (result > 0) {
System.out.println("p1 距离原点更远");
} else if (result < 0) {
System.out.println("p2 距离原点更远");
} else {
System.out.println("p1 和 p2 距离原点一样远");
}
}
}
```
这个测试类会输出 "p2 距离原点更远",因为 p2 的距离原点更远。
阅读全文