**9.10
(几何:正n 边形)在一个正; 《 边形中,所有边的长度都相同,且所有角的度数都相同(即这个多 边形是等边等角的)。设计一个名为 ReguUrPolygon的类,该类包括:
• 一个名为 n的int 型私有数据域定义多边形的边数,狀认值为 3。
• 一个名为 side的 double 型私有数据域存储边的长度,默认值为1。
• 一个名为 x 的 double 型私有数据域定义多边形中点的; c 坐标,默认值为 0。
• 一个名为 y 的 double 型私有数据域定义多边形中点的>> 坐标,默认值为 0。 • 一个创建带畎认值的正多边形的无参构造方法。
• 一个能创建带指定边数和边长度、中心在(0, 0)的正多边形的构造方法。
• 一个能创建带指定边数和边长度、中心在(X«y)的正多边形的构造方法。
• 所有数据域的访问器和修改器。
• — 个返回多边形周长的方法 getPerimeterO。
• 一个返回多边形面积的方法 getAreaO。计算正多边形面积的公式是:
画出该类的UML图并实现这个类。编写一个测试程序,分别使用无参构造方法、 RegularPo1ygon(6,4)和 RegularPolygon(10,4,5_6,7_8)创建三个 RegularPolygon 对象。
308 ^9t
显示每个对象的周长和面积。
package Regularpolygon;
public class Regularpolygon {
private int n=3;//边长
private double side=1;//边长
private double x=0;
private double y=0;//x,y为 多边形中点的x,,y坐标
Regularpolygon(){
}
Regularpolygon(int newN,int newS){
n=newN;
side=newS;
x=0;
y=0;
}
Regularpolygon(int newN,int newS, double newX, double newY){
n=newN;
side= newS;
x=newX;
y=newY;
}
public void setN(int newN){
n=newN;
}
public void setSide(double newS){
side=newS;
}
public void setX(double newX){
x=newX;
}
public void setY(double newY){
y=newY;
}
public int getN(){
return n;
}
public double getSide(){
return side;
}
public double getX(){
return x;
}
public double getY(){
return y;
}
public double getPerimeter(){
return n*side;
}
public double getArea(){
return (n* side* side)/(4*Math.tan(getPerimeter()/n));
}
public class XiTi89 {
public static void main(String[] args) {
Regularpolygon r1=new Regularpolygon();
System.out.println(r1);
System. out.println("对象一周 长: "+r1.getPerimeter()+" 面 积: "+r1.getArea());
Regularpolygon r2=new Regularpolygon(6,4);
System.out.println("对象二周长: "+r2.getPerimeter()+"面积: "+r2.getArea());
Regularpolygon r3=new Regularpolygon(10,4,5.6,7.8);
System.out.println("对象三周长: "+r3.getPerimeter()+"面积: "+r3.getArea());
}
}
}