实验 (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());
}
}