请自定义一个接口 MyComparable来比较对象大小。 请定义接口,并让Point具备比较的能力,我们假设按照与原点的距离进行比较。 MyComparable 方法 compareTo(Object other):抽象方法,比较对象大小,方法的参数是一个Object 类型的变量 other,表示与另一个参与比较的对象。 Point 属性 x:点的坐标x。 y:点的坐标y。 构造方法 Point(int x,int y):初始化两个属性。 方法 compareTo(Object other):比较对象与
时间: 2023-11-27 11:54:15 浏览: 62
推选Comparable自比较接口PPT资料.pptx
原点的距离大小。
以下是代码实现:
```
public interface MyComparable {
abstract int compareTo(Object other);
}
public class Point implements MyComparable {
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
@Override
public int compareTo(Object other) {
Point p = (Point) other;
double distance = Math.sqrt(Math.pow(p.getX(), 2) + Math.pow(p.getY(), 2));
double thisDistance = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
if (thisDistance > distance) {
return 1;
} else if (thisDistance == distance) {
return 0;
} else {
return -1;
}
}
}
```
在这个实现中,我们使用了接口 MyComparable 来定义了一个 compareTo 方法,这个方法可以比较两个对象的大小关系。在 Point 类中,实现了这个接口,并重写了 compareTo 方法。在 compareTo 方法中,我们计算了当前对象与原点的距离,以及另一个对象与原点的距离,然后比较了这两个距离的大小关系。如果当前对象的距离大于另一个对象的距离,返回 1;如果两个对象的距离相等,返回 0;如果当前对象的距离小于另一个对象的距离,返回 -1。
阅读全文