声明圆锥体类,实现Area和Volume接口,计算表面积和体积,按体积比较大小。

Area 接口:

public interface Area {
    //面积
    //圆锥表面积公式:S=πr^2+Πrl
    public abstract double area();
}

volume 接口:

public interface Volume {
    //体积
    //圆锥体的体积公式:V=1/3πr?h
    public abstract double volume();
}

实现接口的类:


public class shixian implements Comparable<shixian> ,Area,Volume {

    //成员变量
    //半径
    public double radius;
    //高度
    public double height;

    //构造方法


    public shixian(double radius, double height) {
        this.radius = radius;
        this.height = height;
    }

    @Override
    public double area() {
        return Math.PI * radius * radius + Math.PI * radius * height;
    }

    @Override
    public double volume() {
        return 1.0 / 3.0 * Math.PI * radius * radius * height;
    }

    @Override
    public int compareTo(shixian c) {
        if (this.volume() > c.volume()) {
            return 1;
        } else if (this.volume() < c.volume()) {
            return -1;
        } else {
            return 0;
        }

    }
}

测试类:


import java.util.Scanner;

//测试类
public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入半径:");
        double radius = sc.nextDouble();
        System.out.print("请输入高度:");
        double height = sc.nextDouble();
        shixian p = new shixian(radius, height);
        System.out.println("面积为:" + p.area());
        System.out.println("体积为:" + p.volume());
        System.out.print("请输入第二个的半径和高度:");
        shixian b = new shixian(sc.nextDouble(), sc.nextDouble());
        if (p.compareTo(b) > 0) {
            System.out.println("第一个圆锥体积大 " + "体积是 " + p.volume());
        } else if (p.compareTo(b) < 0) {
            System.out.println("第二个圆锥体积大 " + "体积是 " + b.volume());
        } else {
            System.out.println("两个圆锥体积相等 " + "体积是 " + b.volume());
        }
    }
}

运行结果:

  • 11
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汇潮学堂

你的鼓励才是我的最大收获

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值