UML类图:
————————————————————————————
RegularPolygon
————————————————————————————
-n: int
-side: double
-x: double
-y: double
————————————————————————————
+RegularPolygon()
+RegularPolygon(n: int, side: double)
+RegularPolygon(n: int, side: double, x: double, y: double)
+getPerimeter(): double
+getArea(): double
+getN(): int
+setN(n: int): void
+getSide(): double
+setSide(side: double): void
+getX(): double
+setX(x: double): void
+getY(): double
+setY(y: double): void
—————————————————————————————
package pack2;
public class RegularPolygon {
private int n; //边数
private double side; //边长
private double x, y; //x、y坐标
/**带默认值的无参构造方法*/
public RegularPolygon() {
this(3, 1);
}
/**带给定边数和边长的构造方法*/
public RegularPolygon(int n, double side) {
this(n, side, 0, 0);
}
/**带给定边数、边长、x坐标、y坐标的构造方法*/
public RegularPolygon(int n, double side, double x, double y) {
this.n = n;
this.side = side;
this.x = x;
this.y = y;
}
/**返回边长*/
public double getPerimeter() {
return n * side;
}
/**返回面积*/
public double getArea() {
return (n * Math.pow(side, 2)) / (4 * Math.tan(Math.PI / n));
}
@Override /**返回边长的面积的字符串描述*/
public String toString() {
return "Perimeter: " + getPerimeter() + "\nArea: " + getArea();
}
/**返回边数*/
public int getN() {
return n;
}
/**设置边数*/
public void setN(int n) {
this.n = (n > 1) ? n : 1;
}
/**返回边长*/
public double getSide() {
return side;
}
/**设置边长*/
public void setSide(double side) {
this.side = (side > 1) ? side : 1;
}
/**返回x坐标*/
public double getX() {
return x;
}
/**设置x坐标*/
public void setX(double x) {
this.x = x;
}
/**返回y坐标*/
public double getY() {
return y;
}
/**设置y坐标*/
public void setY(double y) {
this.y = y;
}
//————————————————————————————————————————————————————————————
public static void main(String[] args) {
RegularPolygon r1 = new RegularPolygon();
RegularPolygon r2 = new RegularPolygon(6, 4);
RegularPolygon r3 = new RegularPolygon(10, 4, 5.6, 7.8);
System.out.println("r1: ");
System.out.println(r1.toString());
System.out.println("\nr2: ");
System.out.println(r2.toString());
System.out.println("\nr3: ");
System.out.println(r3.toString());
}
}