*13.6(ComparableCircle类)创建名为ComparableCircle的类,他继承自Circle 类,并实现Comparable接口。画出UML图并实现compareTo方法,使其根据面积比较两个圆。编写一个测试程序求出两个ComparableCircle实例对象的较大者,以及一个圆和一个矩形的较大者。 *13.6(ComparableCircle class)Create a class named comparablecircle, which inherits from the circle class and implements the comparable interface. Draw the UML diagram and implement the CompareTo method to compare two circles according to the area. Write a test program to find the larger of two comparablecircle instance objects, and the larger of a circle and a rectangle.
参考代码:
package chapter13;publicclassCode_06{publicstaticvoidmain(String [] args){
ComparableCircle circle1 =newComparableCircle(3);
ComparableCircle circle2 =newComparableCircle(4);if(circle1.compareTo(circle2)==1)
System.out.println("circle1 is bigger");elseif(circle1.compareTo(circle2)==-1)
System.out.println("circle2 is bigger");elseif(circle1.compareTo(circle2)==0)
System.out.println("circle1 is the same as circle2");
ComparableRectangle rectangle =newComparableRectangle(2,4);
System.out.println(circle1.getArea()> rectangle.getArea()?"circle1 bigger than rectangle":"rectangle is bigger than circle1");}}classComparableCircleextendsCircleimplementsComparable<ComparableCircle>{publicComparableCircle(){}publicComparableCircle(double radius){super(radius);}public Object max(ComparableCircle o1, ComparableCircle o2){if(o1.compareTo(o2)>0)return o1;elsereturn o2;}publicintcompareTo(ComparableCircle o){if(super.getArea()> o.getArea())return1;elseif(super.getArea()< o.getArea())return-1;elsereturn0;}}
结果显示:
circle2 is bigger
circle1 bigger than rectangle
Process finished with exit code 0