3. 比较接口与实现 请自定义一个接口 MyComparable来比较对象大小。 请定义接口,并让Point具备比较的能力,我们假设按照与原点的距离进行比较。 MyComparable 方法 compareTo(Object other):抽象方法,比较对象大小,方法的参数是一个Object 类型的变量 other,表示与另一个参与比较的对象。 Point 属性 x:点的坐标x。 y:点的坐标y。 构造方法 Point(int x,int y):初始化两个属性。 方法 compareTo(Object other):比较对象与参数对象,返回结果是 int,-1表示自己 小于参数对象,0表示相同,1表示大于参数对象。 distance():计算两点之间的距离。
时间: 2023-11-27 22:51:13 浏览: 108
Comparable接口和Comparator使用示例
3星 · 编辑精心推荐
接口 MyComparable 的定义如下:
```java
public interface MyComparable {
public int compareTo(Object other);
}
```
Point 类实现 MyComparable 接口,并按照与原点的距离进行比较,代码如下:
```java
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;
}
public double distance() {
return Math.sqrt(x * x + y * y);
}
@Override
public int compareTo(Object other) {
if (other == null || !(other instanceof Point)) {
throw new IllegalArgumentException("Invalid argument");
}
Point otherPoint = (Point) other;
double distance1 = this.distance();
double distance2 = otherPoint.distance();
if (distance1 < distance2) {
return -1;
} else if (distance1 > distance2) {
return 1;
} else {
return 0;
}
}
}
```
在 compareTo 方法中,首先检查参数是否合法,如果不是 Point 类型的对象,则抛出异常。然后分别计算两个 Point 对象与原点的距离,并进行比较,返回比较结果。
阅读全文