设计一个Circle类,该类有属性radius,表示圆的半径,其默认值为1;getArea()返回该圆的面积。
创建一个名为ComparableCircle的类,它继承自Circle类,并实现Comparable接口,在类中实现compareTo方法,使其根据面积比较两个圆。
编写测试程序求出两个ComparableCircle实例对象的较大者。程序输出如下信息:
class Circle {
private double radius;
public Circle()
{
radius = 1;
}
public Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getArea() {
return radius * radius * Math.PI;
}
public String toString() {
return "Cirlce: radius = " + radius;
}
}
class ComparableCircle extends Circle implements Comparable<ComparableCircle> {
public ComparableCircle() {
}
public ComparableCircle(double radius) {
super(radius);
}
@Override // Implement the compareTo method defined in Comparable
public int compareTo(ComparableCircle o) {
if (getArea() > o.getArea())
return 1;
else if (getArea() < o.getArea())
return -1;
else
return 0;
}
@Override
public String toString() {
return super.toString() + "\nArea: " + getArea();
}
}
public class Main {
public static void main(String[] args) {
ComparableCircle c1 = new ComparableCircle(7);
ComparableCircle c2 = new ComparableCircle(5);
System.out.println(c1);
System.out.println(c2);
System.out.println((c1.compareTo(c2)>=0) ?"c1较大":"c2较大");
}
}