请设计一个圆类(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-14 14:46:26 浏览: 43
好的,我来帮您设计这个类和测试类:
```
public class Circle {
private double radius;
public Circle() {
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 getArea() {
return Math.PI * radius * radius;
}
public double getPerimeter() {
return 2 * Math.PI * radius;
}
public void output() {
System.out.println("半径为" + radius + "的圆的面积是" + getArea() + ",周长是" + getPerimeter());
}
}
public class Cylinder extends Circle {
private double height;
public Cylinder() {
super();
height = 1.0;
}
public Cylinder(double radius) {
super(radius);
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 getVolume() {
return getArea() * height;
}
public double getSurfaceArea() {
return 2 * getArea() + 2 * Math.PI * getRadius() * height;
}
public void output() {
System.out.println("底面半径为" + getRadius() + ",高为" + height + "的圆柱的体积是:" + getVolume() + ",表面积是:" + getSurfaceArea());
}
}
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();
}
}
```
希望这个程序可以帮到您!
阅读全文