定义一个接口实现两个对象的比较。. interface CompareObject { //返回值为0说明二者相同,大于0说明当前对象大,负数表示当前对象小。 public int compareTo ( Object o ); √ 定义一个 Circle 类,声明 radius 属性,提供设置和获取 radius 方法。 定义一个 ComparableCircle 类,继承 Circle 类并实现 CompareObject 接口。在 ComparebleCircle 类中给出接口中方法 compareTo 的实现体,用于比较两个圆半径的大小。 定义一个测试类 InterfaceTest ,创建两个 ComparableCircle 对象,调用 compareTo 方法比较两个类的半径大小。
时间: 2024-03-16 13:47:23 浏览: 76
计算机后端-Java-Java核心基础-第15章 面向对象07 21. 接口练习:比较对象大小.avi
好的,这是一个很好的面向对象的问题。下面是相应的代码实现:
```
//定义比较接口
interface CompareObject {
// 返回值为0说明二者相同,大于0说明当前对象大,负数表示当前对象小。
public int compareTo(Object o);
}
//定义圆类
class Circle {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
}
//实现比较接口的圆类
class ComparableCircle extends Circle implements CompareObject {
public ComparableCircle(double radius) {
super(radius);
}
//实现比较接口的方法
public int compareTo(Object o) {
if (this == o) {
return 0;
}
if (o instanceof ComparableCircle) {
ComparableCircle c = (ComparableCircle) o;
if (this.getRadius() > c.getRadius()) {
return 1;
} else if (this.getRadius() < c.getRadius()) {
return -1;
} else {
return 0;
}
}
throw new RuntimeException("传入对象不是ComparableCircle的实例");
}
}
//测试类
public class InterfaceTest {
public static void main(String[] args) {
ComparableCircle c1 = new ComparableCircle(5);
ComparableCircle c2 = new ComparableCircle(3);
int result = c1.compareTo(c2);
if (result > 0) {
System.out.println("c1 > c2");
} else if (result < 0) {
System.out.println("c1 < c2");
} else {
System.out.println("c1 = c2");
}
}
}
```
在上面的代码中,我们首先定义了一个比较接口 `CompareObject`,其中有一个 `compareTo` 方法用于比较两个对象的大小。然后我们定义了一个圆类 `Circle`,其中有一个 `radius` 属性和相应的设置和获取方法。接着我们定义了一个实现了比较接口的圆类 `ComparableCircle`,它继承了圆类并实现了接口中的 `compareTo` 方法。在 `compareTo` 方法中,我们首先判断传入的参数是否是当前对象本身,如果是,则返回0。如果不是,我们把传入的对象转换成圆类,然后比较两个圆的半径大小,返回相应的结果。最后我们定义了一个测试类,创建两个 `ComparableCircle` 对象并调用它们的 `compareTo` 方法进行比较。根据比较的结果输出相应的信息。
阅读全文