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

public class 圆锥体 {
    public static void main(String[] args) {
        Cone c1 = new Cone(3, 4);
        Cone c2 = new Cone(6, 8);
        System.out.println(c1.compare_size(c2));
        System.out.println(c1.Height());
        System.out.println(c1.Radius());
        System.out.println(c1.GetArea());
        System.out.println(c1.GetVolume());
        System.out.println(c1.toString());
    }
}

interface Area {
    public abstract double GetArea(double r, double h);
}

interface Volume {
    public abstract double GetVolume(double r, double h);
}

class Cone implements Area, Volume {
    private double r, h;

    public Cone() {
    }

    public Cone(double r, double h) {
        this.h = h;
        this.r = r;
    }

    public double Radius() {
        return r;
    }

    public double Height() {
        return h;
    }

    public double GetArea(double r, double h) {
        return Math.PI * r * Math.sqrt(h * h + r * r) + Math.PI * r * r;
    }

    public double GetArea() {
        return GetArea(this.r, this.h);
    }

    public double GetVolume(double r, double h) {
        return Math.PI * r * r * h / 3;
    }

    public double GetVolume() {
        return GetVolume(this.r, this.h);
    }

    public boolean compare_size(Cone c) {
        return this.GetVolume(this.r, this.h) > c.GetVolume(c.r, c.h);
    }

    public String toString() {
         return "底面半径为:"+r+","+"高为:"+h+","+"母线长为:"+Math.sqrt(h*h+r*r);
    }
}
发布了11 篇原创文章 · 获赞 2 · 访问量 621

猜你喜欢

转载自blog.csdn.net/Cheng_XZ/article/details/102410083