比较两个圆面积大小

创建名为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));
    }

}

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

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值