用java,计算三维图形的体积

用java ,设定三维立体图形ThreeDimen:圆球,圆柱,圆锥,长方体,正方体,根据传递的参数计算三维图形的体积

该回答引用chatgpt:

abstract class ThreeDimen {
    abstract double volume();
}

class Sphere extends ThreeDimen {
    double radius;
    
    Sphere(double r) {
        radius = r;
    }

    double volume() {
        return 4.0/3 * Math.PI * Math.pow(radius, 3);
    }
}

class Cylinder extends ThreeDimen {
    double radius;
    double height;

    Cylinder(double r, double h) {
        radius = r;
        height = h;
    }

    double volume() {
        return Math.PI * Math.pow(radius, 2) * height;
    }
}

class Cone extends ThreeDimen {
    double radius;
    double height;

    Cone(double r, double h) {
        radius = r;
        height = h;
    }

    double volume() {
        return 1.0/3 * Math.PI * Math.pow(radius, 2) * height;
    }
}

class RectangularPrism extends ThreeDimen {
    double length;
    double width;
    double height;

    RectangularPrism(double l, double w, double h) {
        length = l;
        width = w;
        height = h;
    }

    double volume() {
        return length * width * height;
    }
}

class Cube extends ThreeDimen {
    double side;

    Cube(double s) {
        side = s;
    }

    double volume() {
        return Math.pow(side, 3);
    }
}

public class Main {
    public static void main(String[] args) {
        Sphere s = new Sphere(2);
        System.out.println("Sphere volume: " + s.volume());

        Cylinder c = new Cylinder(2, 5);
        System.out.println("Cylinder volume: " + c.volume());

        Cone cone = new Cone(3, 6);
        System.out.println("Cone volume: " + cone.volume());

        RectangularPrism rp = new RectangularPrism(2, 3, 4);
        System.out.println("Rectangular prism volume: " + rp.volume());

        Cube cube = new Cube(2);
        System.out.println("Cube volume: " + cube.volume());
    }
}

在这个示例中,通过抽象类ThreeDimen定义了一个通用的计算体积的方法volume(),然后每个具体的子类实现了自己的volume()方法,根据自己的特点计算自己的体积。在main()方法中,创建了各个不同的三维图形对象,通过调用它们的volume()方法计算它们的体积。