1、请设计一个圆类(Circle),保存其基本属性(私有)并提供以下方法: 构造方法: 指定半径的构造方法; 无参构造方法,半径默认为1.0; 半径的getter和setter方法; 计算圆面积的方法; 计算圆周长的方法; output方法,按照“半径为x的圆的面积是s,周长是l”的格式输出圆的描述信息; 用继承的思想,在圆类的基础上派生出圆柱类(Cylinder),保存其基本属性并提供以下方法: 构造方法: 指定半径和高的构造方法; 仅指定半径的构造方法,高默认为1.0; 无参构造方法; 高的getter和setter方法; 计算圆柱体积的方法; 计算圆柱表面积的方法; output方法,按照“底面半径为r,高为h的圆柱的体积是:v,表面积是:s”的格式输出圆柱的描述信息; 编写一个测试类(CylinderDemo),在main方法中按照以下步骤进行测试: 创建一个半径为3.2的圆类对象c,输出其描述信息; 创建一个底面半径为2.3,高为4的圆柱类对象cy,输出其描述信息; 将圆柱类对象cy的底面圆半径设定为1.5,高设定为3,输出其描述信息。
时间: 2024-03-26 14:34:27 浏览: 79
圆类 Circle 的代码实现:
```java
public class Circle {
private double radius;
public Circle() {
this.radius = 1.0;
}
public Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double calculateArea() {
return Math.PI * radius * radius;
}
public double calculatePerimeter() {
return 2 * Math.PI * radius;
}
public void output() {
double area = calculateArea();
double perimeter = calculatePerimeter();
System.out.println("半径为" + radius + "的圆的面积是" + area + ",周长是" + perimeter);
}
}
```
圆柱类 Cylinder 继承自 Circle,代码实现:
```java
public class Cylinder extends Circle {
private double height;
public Cylinder() {
super();
this.height = 1.0;
}
public Cylinder(double radius) {
super(radius);
this.height = 1.0;
}
public Cylinder(double radius, double height) {
super(radius);
this.height = height;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double calculateVolume() {
return calculateArea() * height;
}
public double calculateSurfaceArea() {
return 2 * calculateArea() + calculatePerimeter() * height;
}
public void output() {
double radius = getRadius();
double volume = calculateVolume();
double surfaceArea = calculateSurfaceArea();
System.out.println("底面半径为" + radius + ",高为" + height + "的圆柱的体积是:" + volume + ",表面积是:" + surfaceArea);
}
}
```
测试类 CylinderDemo 的代码实现:
```java
public class CylinderDemo {
public static void main(String[] args) {
Circle c = new Circle(3.2);
c.output();
Cylinder cy = new Cylinder(2.3, 4);
cy.output();
cy.setRadius(1.5);
cy.setHeight(3);
cy.output();
}
}
```
运行结果:
```
半径为3.2的圆的面积是32.169908772759484,周长是20.10619721058569
底面半径为2.3,高为4.0的圆柱的体积是:64.82080000000001,表面积是:78.31374533545056
底面半径为1.5,高为3.0的圆柱的体积是:10.601865556523498,表面积是:30.974447445279593
```
阅读全文