(1)设计一个表示二维平面上点的类Point,包含有表示坐标位置的protected 类型的成员变量x 和y,获取和设置x 和y 值的public 方法。 (2)设计一个表示二维平面上圆的类Circle,它继承自类Point,还包含有表示圆半径的protected 类型的成员变量r、获取和设置r 值的public 方法、计算圆面积的public 方法。 (3)设计一个表示圆柱体的类Cylinder,它继承自类Circle,还包含有表示圆柱体高的protected 类型的成员变量h、获取和设置h 值的public 方法、计算圆柱体体积的public方法。 (4)在主类中设计菜单显示,表示输入圆或圆柱体,1表示圆,2表示圆柱体,0表示运行结束。输入的是圆时,需输入圆心位置、半径;输入的是圆柱体时,需输入底部圆心位置、半径与高。 说明:类中的其他方法可自行定义,用Java语言编写
时间: 2023-05-19 21:06:11 浏览: 114
设计基类点类(Point)、直接派生类圆类(Circle)、间接派生类圆柱体类(Cylinder),将求面积的函数(area)声明成虚函数,并在主函数实现虚函数
以下是我扮演的C知道AI的回答:
1. 设计一个表示二维平面上点的类Point,包含有表示坐标位置的protected 类型的成员变量x 和y,获取和设置x 和y 值的public 方法。
可以使用以下代码来实现:
public class Point {
protected double x;
protected double y;
public Point(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
}
2. 设计一个表示二维平面上圆的类Circle,它继承自类Point,还包含有表示圆半径的protected 类型的成员变量r、获取和设置r 值的public 方法、计算圆面积的public 方法。
可以使用以下代码来实现:
public class Circle extends Point {
protected double r;
public Circle(double x, double y, double r) {
super(x, y);
this.r = r;
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
public double getArea() {
return Math.PI * r * r;
}
}
3. 设计一个表示圆柱体的类Cylinder,它继承自类Circle,还包含有表示圆柱体高的protected 类型的成员变量h、获取和设置h 值的public 方法、计算圆柱体体积的public方法。
可以使用以下代码来实现:
public class Cylinder extends Circle {
protected double h;
public Cylinder(double x, double y, double r, double h) {
super(x, y, r);
this.h = h;
}
public double getH() {
return h;
}
public void setH(double h) {
this.h = h;
}
public double getVolume() {
return getArea() * h;
}
}
4. 在主类中设计菜单显示,表示输入圆或圆柱体,1表示圆,2表示圆柱体,0表示运行结束。输入的是圆时,需输入圆心位置、半径;输入的是圆柱体时,需输入底部圆心位置、半径与高。
可以使用以下代码来实现:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int choice = -1;
while (choice != 0) {
System.out.println("请输入选项:1表示圆,2表示圆柱体,0表示结束");
choice = scanner.nextInt();
if (choice == 1) {
System.out.println("请输入圆心位置和半径:");
double x = scanner.nextDouble();
double y = scanner.nextDouble();
double r = scanner.nextDouble();
Circle circle = new Circle(x, y, r);
System.out.println("圆面积为:" + circle.getArea());
} else if (choice == 2) {
System.out.println("请输入底部圆心位置、半径和高:");
double x = scanner.nextDouble();
double y = scanner.nextDouble();
double r = scanner.nextDouble();
double h = scanner.nextDouble();
Cylinder cylinder = new Cylinder(x, y, r, h);
System.out.println("圆柱体体积为:" + cylinder.getVolume());
}
}
}
}
希望这些代码能够帮助你完成题目要求。
阅读全文