在上一题的基础上,让抽象类GeometricObject实现接口Comparable,UML图如下:
注意:实现接口的连线是空心三角形+虚线形式的箭头,接口前面加<>,接口和接口里面的方法为斜体,要求掌握绘制方法。
(1) 编写父类GeometricObject、矩形类 Rectangle和圆类Circle,分别实现从父类和接口继承而来的方法,Rectangle和Circle对象通过面积比较大小;
提示:
- Comparable接口在java.lang包中定义,请查阅JDK文档和教材13.6节,掌握其使用方法。
(2) 编写测试类,分别创建圆形数组和矩形数组,按照面积进行排序,并输出结果。
提示:
-
java.util包中的Arrays类,可以对数组进行排序,自己查看JDK帮助文档(查看sort(Object[]
a)方法的用法)并参考教材“程序清单13-10”,对两个数组进行排序;输出示例如下图:
代码如下:
GeometricObject类:
//Comparable接口不需要写,java.lang中有,可以直接用
public abstract class GeometricObject {
public abstract double getArea();
public abstract double getPerimeter();
public int compareTo(GeometricObject g) {
if(this.getArea() < g.getArea()) {
return -1;
}
else if(this.getArea() == g.getArea()) {
return 0;
}
else {
return 1;
}
} //比较一类图形面积大小ÿ