类的设计:定义一个类Circle,定义多边体的类Cylinder(为Circle的子类),定义Test类(主类) 要求: ① 成员变量(private): Circle类:r表示半径,p表示周长,s表示面积,cirque表示圆环 Cylinder类:h表示高,v表示体积 ② Circle类和Cylinder类定义一个带参数的构造方法对各成员变量初始化,并对p、s和v进行运算。 ③ Circle类和Cylinder类给成员变量定义对应的getr方法,获取各个园的半径值。 ④ Circle类和Cylinder类给成员变量定义对应的setr方法,设置当前圆的半径值。 ⑤ Circle类定义方法 计算相关周长和面积值。 ⑥ Cylinder类定义方法 计算相关体积值。 ⑦ 在Test类的main方法中创建5个不同半径圆对象,输出圆半径值和相关面积(每一个圆面积,第一个圆和第二个圆形成的圆环面积)和圆柱体体积值。 1.3 要求 (步骤) 1. 设计Circle类 2. 设计Circle类的子类 Cylinder类。 3. 设计主类Test类。创建5个不同半径圆对象(半径值为:1.0,2.0,3.0,4.0,5.0),输出圆半径值、相关圆的周长值、相关圆的面积值(每一个圆面积,第一个圆和第二个圆形成的圆环面积)和圆柱体体积值。 4. 观察、分析并记录实验结果。写出代码
时间: 2024-03-17 14:40:29 浏览: 24
以下是实现上述要求的Java代码:
Circle.java
```
public class Circle {
private double r; // 圆的半径
private double p; // 圆的周长
private double s; // 圆的面积
private double cirque; // 圆环的面积
// 带参数的构造方法
public Circle(double r) {
this.r = r;
this.p = 2 * Math.PI * r;
this.s = Math.PI * r * r;
}
// 计算圆环的面积
public void calcCirqueArea(Circle c2) {
double r1 = this.r;
double r2 = c2.getR();
this.cirque = Math.abs(Math.PI * (r1*r1 - r2*r2));
}
// 获取半径
public double getR() {
return r;
}
// 设置半径
public void setR(double r) {
this.r = r;
this.p = 2 * Math.PI * r;
this.s = Math.PI * r * r;
}
// 计算周长
public double calcPerimeter() {
return this.p;
}
// 计算面积
public double calcArea() {
return this.s;
}
// 获取圆环面积
public double getCirqueArea() {
return this.cirque;
}
}
```
Cylinder.java
```
public class Cylinder extends Circle {
private double h; // 圆柱体的高
private double v; // 圆柱体的体积
// 带参数的构造方法
public Cylinder(double r, double h) {
super(r);
this.h = h;
this.v = Math.PI * r * r * h;
}
// 获取高
public double getH() {
return h;
}
// 设置高
public void setH(double h) {
this.h = h;
this.v = Math.PI * getR() * getR() * h;
}
// 计算体积
public double calcVolume() {
return this.v;
}
}
```
Test.java
```
public class Test {
public static void main(String[] args) {
Circle c1 = new Circle(1.0);
Circle c2 = new Circle(2.0);
Circle c3 = new Circle(3.0);
Circle c4 = new Circle(4.0);
Circle c5 = new Circle(5.0);
// 计算圆环面积
c1.calcCirqueArea(c2);
c2.calcCirqueArea(c1);
c2.calcCirqueArea(c3);
c3.calcCirqueArea(c2);
c3.calcCirqueArea(c4);
c4.calcCirqueArea(c3);
c4.calcCirqueArea(c5);
c5.calcCirqueArea(c4);
// 输出圆的半径、周长、面积和圆环面积,以及圆柱体的体积
System.out.println("圆1:半径=" + c1.getR() + ",周长=" + c1.calcPerimeter()
+ ",面积=" + c1.calcArea() + ",圆环面积=" + c1.getCirqueArea());
System.out.println("圆2:半径=" + c2.getR() + ",周长=" + c2.calcPerimeter()
+ ",面积=" + c2.calcArea() + ",圆环面积=" + c2.getCirqueArea());
System.out.println("圆3:半径=" + c3.getR() + ",周长=" + c3.calcPerimeter()
+ ",面积=" + c3.calcArea() + ",圆环面积=" + c3.getCirqueArea());
System.out.println("圆4:半径=" + c4.getR() + ",周长=" + c4.calcPerimeter()
+ ",面积=" + c4.calcArea() + ",圆环面积=" + c4.getCirqueArea());
System.out.println("圆5:半径=" + c5.getR() + ",周长=" + c5.calcPerimeter()
+ ",面积=" + c5.calcArea() + ",圆环面积=" + c5.getCirqueArea());
Cylinder cy = new Cylinder(3.0, 5.0);
System.out.println("圆柱体:半径=" + cy.getR() + ",高=" + cy.getH()
+ ",底面积=" + cy.calcArea() + ",体积=" + cy.calcVolume());
}
}
```
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)