设计一个求立方体体积的父类,包含一个显示底面各个形状信息的统一方法,信息显示方式 “类别+周长+面积”;一个计算和显示立方体体积的统一方法 设计三个子类(利用继承关系):圆柱、长方体、三棱柱

本文设计了一个抽象父类Volume,用于计算不同几何体的体积。通过继承创建了圆柱(Cylinder)、长方体(Cuboid)和三棱柱(Prism)三个子类。每个子类实现了特定几何体的底面周长和面积计算方法,并展示了如何通过测试类输出体积。
摘要由CSDN通过智能技术生成

设计一个求立方体体积的父类,包含一个显示底面各个形状信息的统一方法,信息显示方式 “类别+周长+面积”;一个计算和显示立方体体积的统一方法 设计三个子类(利用继承关系):圆柱、长方体、三棱柱,包含参数设置方法、底面周长计算方法、底面面积计算方法 设计一个测试类,输出底面信息和体积

首先,我们需要设计一个父类,三个子类:

确定父类为Volume,父类代码如下:

abstract class Volume {   //创建父类
    protected int species;      //种类
    protected double perimeter;   //周长
   protected double bottom_area;   //底面面积
   protected double h;          //高
   abstract void setR(int species ,double perimeter,double h);    //
   abstract void setBottomarea() ;              //成员方法,计算底面积
}

接着设计三个子类:

//cylinder   圆筒
abstract class Cylinder extends Volume{
     private double r;

     void setR(int  a ,double b) {
          this.species=a;
          this.h=b;
     }

     public Cylinder(int species  ,double h,double r){
          setR(species,h);
          this.r=r;
     }

     void setBottom_area(){
          bottom_area =3.1415926*r*r;
          perimeter =3.1415926*r*4;
          System.out.println("圆筒的底面面积       " +bottom_area+"   圆筒的体积  "+h*bottom_area);
     }
}
//Cuboid  长方体
class Cuboid extends Volume{
    double x,y;
    void setR(int species, double h) {
        this.species=species;
        this.h=h;
    }
    public Cuboid(int species, double h, double x, double y){
        setR(species,h);
        this.x=x;
        this.y=y;
    }
    void setR(int species, double perimeter, double h) {
    }
    void setBottomarea() {
        bottom_area=x*y;    //我们假设长方体的底面面积的长、宽分别为x,y
        perimeter=4*(x+y+h);
        System.out.println("长方体的底面面积      " +bottom_area+"  长方体的体积  "+h*bottom_area);
    }
}
//prism 棱镜
public abstract class Prism extends Volume{
     private double x,y,z ;

     void setR(int a,double b) {
        this.species =a;
        this.h=b;
    }

    public Prism(int species, double h, double x,double y,double z){
         setR(species,h);
         this.x=x;
         this.y=y;
         this.z=z;
    }
     void setBottom_area(){
         bottom_area=0.86602540*x*y*0.5;
         perimeter =2*(x+y+z);
         System.out.println("三棱柱的底面面积     " +bottom_area+"  棱镜的体积  "+h*bottom_area);
     }
}

最后,题目的要求还需要我们对其进行一个测试:

public class Test{
    public static void main(String[] args) {
        Cylinder x1 = new Cylinder(1, 10, 4) {      //创建有关圆筒的变量,并且给圆筒的种类编号为1,赋值高,半径等
            @Override
            void setR(int species, double perimeter, double h) {
            }
            void setBottomarea() {
            }
        };
       Cuboid x2=new Cuboid(2,10,3,4);
       Prism x3= new Prism(3, 10, 6, 6, 6) {
           void setR(int species, double perimeter, double h) {
           }
           void setBottomarea() {
           }
       };
        x1.setBottom_area();        //调用圆筒成员方法
        x2.setBottomarea();         //调用长方形成员方法
        x3.setBottom_area();        //调用三棱镜成员方法
    }
}

完成了该题目的要求

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值