R6-2 从抽象类shape类扩展出一个正n边形 分数 10 作者 张德慧 单位 西安邮电大学 在一个正n边形(Regular Polygon)中,所有边的边长都相等,且所有角的度数相同(即这个多边形是等边、等角的)。请从下列的抽象类shape类扩展出一个正n边形类RegularPolygon,这个类将正n边形的边数n和边长a作为私有成员,类中包含初始化边数n和边长a的构造方法。 public abstract class shape {// 抽象类 public abstract double getArea();// 求面积 public abstract double getPerimeter(); // 求周长 } 计算正n边形的面积公式为: Area=n×a×a/(tan((π/n))×4); 注意:需要将角度转换成弧度后再计算三角函数。 类名:RegularPolygon
时间: 2023-06-24 08:05:34 浏览: 358
设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法
5星 · 资源好评率100%
代码如下:
```
public class RegularPolygon extends shape {
private int n; // 边数
private double a; // 边长
public RegularPolygon(int n, double a) {
this.n = n;
this.a = a;
}
@Override
public double getArea() {
double radian = Math.toRadians(180.0 / n); // 角度转弧度
return n * a * a / (4 * Math.tan(radian));
}
@Override
public double getPerimeter() {
return n * a;
}
}
```
在正n边形类中,我们定义了私有成员变量n和a来存储正n边形的边数和边长。RegularPolygon类继承了shape抽象类,并实现了getArea()和getPerimeter()方法。在getArea()方法中,我们根据公式计算正n边形的面积,先将角度转换成弧度,然后使用Math库中的tan()方法计算正切值。在getPerimeter()方法中,我们直接返回正n边形的周长,即n*a。
阅读全文