比较两个圆面积大小

。_饼干妹妹 提交于 2019-12-02 12:52:32

创建名为ComparableCircle的类,它继承自Circle类,并实现Comparable接口。实现compareTo方法,使其根据面积比较两个圆。编写一个测试程序求出ComparableCircle对象的两个实例中的较大者。

代码如下:

import java.util.Date;
import java.util.Scanner;
abstract class GeometricObject{
    private String color = "white";
    private boolean filled;
    private Date dateCreated;
    protected GeometricObject(){
        dateCreated = new Date();
    }
    protected GeometricObject(String color,boolean filled){
        dateCreated = new Date();
        this.color = color;
        this.filled = filled;
    }
    public String getColor(){
        return color;
    }
    public void setColor(String color){
        this.color = color;
    }
    public boolean isFilled(){
        return filled;
    }
    public void setFilled(boolean filled){
        this.filled = filled;
    }
    public Date getDateCreated(){
        return dateCreated;
    }
    @Override
    public String toString(){
        return "created on " + dateCreated + "\ncolor: " + color + " and filled: " + filled;
    }
    public abstract double getArea();
    public abstract double getPerimeter();
}

class Circle extends GeometricObject{
    private double radius;

    public Circle(){

    }
    public Circle(double radius){
        this.radius = radius;
    }

    public Circle(String color,boolean filled,double radius){
        super(color,filled);
        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 double getPerimeter(){
        return 2 * radius * Math.PI;
    }
    public void printCircle(){
        System.out.println("The circle is created " + getDateCreated() + " and the radius is " + radius);
    }
}

public class ComparableCircle extends Circle
        implements Comparable<ComparableCircle>{
    public ComparableCircle(){

    }
    public ComparableCircle(double radius){
        super(radius);
    }
    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() + " Area: " + getArea();
    }
    public void comparativeResult(int compare){
        if(compare==1){
            System.out.println("大于");
        }
        else if(compare==-1){
            System.out.println("小于");
        }
        else if(compare==0){
            System.out.println("等于");
        }
    }
    public static void main(String[] args) {
        System.out.println("请输入第一个圆的半径:");
        Scanner input = new Scanner(System.in);
        ComparableCircle circle1 = new ComparableCircle(input.nextDouble());
        System.out.println("请输入第二个圆的半径:");
        ComparableCircle circle2 = new ComparableCircle(input.nextDouble());
        System.out.print("两圆比较结果为:");
        circle1.comparativeResult(circle1.compareTo(circle2));
    }

}

运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!