创建“可比较的圆〞类,扩展自Circle类 (Circle类包含私有的 “半径〞数据域以及公 开的访问器) ,并实现 Comparable接口(实现 compareTo方法,根据面积比较圆大小)。编写Max方法接受Comparable类型参数,返回其中较大者,并编写测试程
时间: 2023-06-26 19:07:20 浏览: 81
CircleTest_java_设计一个circle_点类_圆类_
5星 · 资源好评率100%
序。
下面是实现代码:
```java
public class ComparableCircle extends Circle implements Comparable<ComparableCircle> {
public ComparableCircle(double radius) {
super(radius);
}
@Override
public int compareTo(ComparableCircle o) {
if (this.getArea() > o.getArea()) {
return 1;
} else if (this.getArea() < o.getArea()) {
return -1;
} else {
return 0;
}
}
public static ComparableCircle max(ComparableCircle c1, ComparableCircle c2) {
if (c1.compareTo(c2) > 0) {
return c1;
} else {
return c2;
}
}
public static void main(String[] args) {
ComparableCircle c1 = new ComparableCircle(5);
ComparableCircle c2 = new ComparableCircle(10);
ComparableCircle c3 = new ComparableCircle(7);
System.out.println("The largest circle is " + max(c1, c2).getRadius());
System.out.println("The largest circle is " + max(c1, c3).getRadius());
}
}
```
在这个类中,我们重写了 `compareTo` 方法,用于比较两个 `ComparableCircle` 对象的大小。同时,我们还实现了一个 `max` 静态方法,用于接受两个 `Comparable` 类型的参数,返回其中较大的那个。
在 `main` 方法中,我们创建了三个 `ComparableCircle` 对象,并使用 `max` 方法找出其中的最大值,并输出其半径。
输出结果为:
```
The largest circle is 10.0
The largest circle is 7.0
```
阅读全文