java编写创建图形类为父类,包含边长信息,求面积的方法,正三角形类,圆形类,正方形类分别继承图形类,重写求面积方法并输出面积,输入为“图形名字\n边长\n“,若不存在该图形类,输出”Can’t calculate“,否则输出"面积为: 面积大小\n"。(结果保留两位小数)
时间: 2024-02-13 08:59:35 浏览: 77
以下是实现该功能的示例代码:
```java
import java.util.Scanner;
// 创建图形类作为父类
class Shape {
protected double length; // 边长信息
public Shape(double length) {
this.length = length;
}
public double getArea() {
return 0; // 默认返回0,子类需要重写该方法
}
}
// 正三角形类
class EquilateralTriangle extends Shape {
public EquilateralTriangle(double length) {
super(length);
}
@Override
public double getArea() {
return Math.sqrt(3) * length * length / 4; // 重写求面积方法
}
}
// 圆形类
class Circle extends Shape {
public Circle(double length) {
super(length);
}
@Override
public double getArea() {
return Math.PI * length * length / 4; // 重写求面积方法
}
}
// 正方形类
class Square extends Shape {
public Square(double length) {
super(length);
}
@Override
public double getArea() {
return length * length; // 重写求面积方法
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String shapeName = scanner.nextLine().trim();
double length = scanner.nextDouble();
Shape shape;
switch (shapeName) {
case "EquilateralTriangle":
shape = new EquilateralTriangle(length);
break;
case "Circle":
shape = new Circle(length);
break;
case "Square":
shape = new Square(length);
break;
default:
System.out.println("Can't calculate");
return;
}
double area = shape.getArea();
System.out.printf("面积为: %.2f\n", area);
}
}
```
程序首先从标准输入中读取图形名称和边长信息,然后根据图形名称创建相应的图形对象。如果图形名称不是“EquilateralTriangle”、“Circle”或“Square”,则输出“Can't calculate”。否则,调用对应图形对象的 `getArea()` 方法求得面积,并输出结果。注意,输出结果保留两位小数,可以使用 `printf()` 方法实现。
阅读全文