实验 (4) 项目名称:子类与继承-求圆柱和圆锥
一、 实验报告内容一般包括以下几个内容:
- 实验项目名称 实验4 子类与继承-求圆柱和圆锥
- 实验目的和要求
本实验的目的:
(1)掌握(继承)类的声明;
(2)掌握构造方法执行机理
(3)掌握private、protected、public等修饰符;
(4)掌握super的各种用法
实验具体要求:
定义一个圆类Circle,成员变量:半径;
成员方法:构造方法、get和set半径的方法、计算面积和周长的方法。
定义圆柱和圆锥类,定义相应的变量成员和成员方法。
使用以上类编程,输出圆柱和圆锥面积和体积。
假设圆的半径是3,圆柱和圆锥的底半径也是3,高是2。
实验思路如下:
- 实验原理
- 主要仪器设备
(1)学生每人一台PC机;
(2)互联网环境。
实验解答:
Circle.java
package data20240321;public class Circle {double radius;public Circle(){radius=1;}public double getArea(){return Math.PI*Math.pow(radius,2);}public double getAround(){return 2*radius*Math.PI;}public void setRadius(double radius){this.radius=radius;}public double getRadius(){return radius;}
}
CircleColumn.java
package data20240321;public class CircleColumn extends Circle{double height;public double getHeight(){return height;}public void setHeight(double height){this.height=height;}public double getColumnV(){return getArea()*height;}public double getColumnA(){return 2*getArea()+getAround()*height;}
}
CircleCone.java
package data20240321;public class CircleCone extends Circle{double height;public double getHeight(){return height;}public void setHeight(double height){this.height=height;}public double getConeV(){return getArea()*height/3.0;}public double getConeA(){return getArea()+Math.PI*radius*Math.sqrt(Math.pow(radius,2)+Math.pow(height,2));}
}
MainClass.java
package data20240321;public class MainClass {public static void main(String[] args) {CircleColumn circleColumn = new CircleColumn();CircleCone circleCone = new CircleCone();circleCone.setHeight(3);circleCone.setRadius(1);circleColumn.setHeight(1);circleColumn.setRadius(1);System.out.printf("圆柱的体积为%.2f,圆柱的面积为%.2f\n",circleColumn.getColumnV(),circleColumn.getColumnA());System.out.printf("圆锥的体积为%.2f,圆锥的面积为%.2f\n",circleCone.getConeV(),circleCone.getConeA());}
}