java利用compareTo方法判断两圆大小

public class TestComparableCircle
{
    public static void main(String [] args)

    {
        ComparableCircle circle1 = new ComparableCircle(3);
        ComparableCircle circle2 = new ComparableCircle(4);
        int ret=circle1.compareTo(circle2);
        if(1==ret)
        {
            System.out.println("circle1>circle2");
        }
        else if(-1==ret)
        {
            System.out.println("circle1<circle2");
        }
        else 
        {
            System.out.println("circle1=circle2");
        }
    }
}
class ComparableCircle extends Circle 
{
    public ComparableCircle()
    {
    }
    public ComparableCircle(double radius)
    {
        super(radius);
    }
    @Override
    public int compareTo(ComparableCircle o)
    {
        if (super.getArea() > o.getArea())
            //用已知的对象的面积和 o 进行比较
        {
            return 1;
        }
        else if (super.getArea() < o.getArea())
        {
            return -1;
        }
        else
            return 0;
    }
}
class Circle
{
    private double radius;
    public Circle()
    {
    }
    public Circle(double radius)
    {
        this.radius=radius;
    }
    public double getRadius()
    {
        return radius;
    }
    public void setRadius(double radius)
    {
        this.radius = radius;
    }
    public double getArea()
    {
        return Math.PI * radius * radius;
    }
}

猜你喜欢

转载自blog.51cto.com/14233078/2397087