创建“可比较的圆〞类,扩展自Circle类 (Circle类包含私有的 “半径〞数据域以及公 开的访问器) ,并实现 Comparable接口(实现 compareTo方法,根据面积比较圆大小)。编写Max方法接受Comparable类型参数,返回其中较大者,并编写测试程
时间: 2023-06-26 13:07:12 浏览: 128
实现一个圆类
4星 · 用户满意度95%
序。
下面是可比较的圆类的实现及测试代码:
```java
public class ComparableCircle extends Circle implements Comparable<ComparableCircle> {
public ComparableCircle(double radius) {
super(radius);
}
@Override
public int compareTo(ComparableCircle o) {
double diff = getArea() - o.getArea();
if (diff > 0) {
return 1;
} else if (diff < 0) {
return -1;
} else {
return 0;
}
}
public static <T extends Comparable<T>> T max(T a, T b) {
if (a.compareTo(b) > 0) {
return a;
} else {
return b;
}
}
public static void main(String[] args) {
ComparableCircle c1 = new ComparableCircle(2.0);
ComparableCircle c2 = new ComparableCircle(3.0);
ComparableCircle c3 = new ComparableCircle(1.5);
System.out.println("The larger circle is " + max(c1, max(c2, c3)).getRadius());
}
}
```
在这个实现中,我们继承了Circle类,并实现了Comparable接口。在compareTo方法中,我们比较了两个圆的面积大小,并返回一个整数,表示它们的相对大小。
我们还实现了一个静态的max方法,使用泛型来接受Comparable类型的参数,并返回其中较大者。在测试代码中,我们创建了三个ComparableCircle对象,并使用max方法来找到它们中面积最大的那个圆。
输出结果如下:
```
The larger circle is 3.0
```
这表明,面积为3.0的圆是三个圆中面积最大的。
阅读全文