题目:
设计一个名为RegularPolygon的正n边形类
一个名为n的int型私有数据域定义多边形的边数,默认值为3。 一个名为side的double型私有数据域存储边的长度,默认值为1。
一个名为x的double型私有数据域,它定义多边形中点的x坐标,默认值为0。 一个名为y的double型私有数据域,它定义多边形中点的y坐标,默认值为0。 一个创建带默认值的正多边形的无参构造方法。
一个能创建带指定边数和边长度、中心在(0,0)的正多边形的构造方法。 一个能创建带指定边数和边长度、中心在(x,y)的正多边形的构造方法。 所有数据域的get和set方法。
一个返回多边形周长的方法getPerimeter()。
一个返回多边形面积的方法getArea()。计算正多边形面积的公式是:面积=(n*side2)/(4*tan(180/n))
分别使用无参构造方法、RegularPolygon (6,4)和RegularPolygon(10,4,5.6,7.8)创建三个RegularPolygon对象,并显示每个对象的周长和面积。
//package regularPolygon; public class RegularPolygon { private int n =3; private double side = 1; private double x = 0; private double y = 0; RegularPolygon(){} RegularPolygon(intn,double side) { this.n = n; this.side =side; }
RegularPolygon(intn,doubleside,doublex,double y) { this.n = n; this.side = side; this.x = x; this.y = y;
}
publicintgetN(int n) { return n; }
public void setN(int n) { this.n = n; }
public double getSide(double side) { return side; }
public void setSide(double side) { this.side = side; }
public double getX(double x) { return x; }
public void setX(double x) { this.x = x; }
public double getY(double y) { return y; }
public void setY(double y) { this.y = y; }
public double getPerimeter() {
System.out.println(\"正多边形的周长是\"+n*side); return n*side; }
public double getArea() {
System.out.println(\"正多边形的面积是\"+(n*side*side)/(4*Math.atan(180/n))); return (n*side*side)/(4*Math.atan(180/n)); }
}
/*setData() { RegRegularPolygon=new Reg(); Scanner reader=new Scanner(System.in)
System.out.println(\"请输入多边形的边数n\"); RegularPolygon.n=reader.nextInt();
System.out.println(\"请输入多边形边的长度side\"); RegularPolygon.side=reader.nextDouble();
System.out.println(\"请输入多边形的x坐标x\"); RegularPolygon.x=reader.nextDouble(); System.out.println(\"请输入多边形的x坐标x\"); RegularPolygon.y=reader.nextDouble(); } */
//package regularPolygon;
public class Test { public static void main(String args[]) { RegularPolygon a = new RegularPolygon(); RegularPolygon b = new RegularPolygon(6,4); RegularPolygon c = new RegularPolygon(10,4,5.6,7.8); a.getPerimeter(); a.getArea(); b.getPerimeter(); b.getArea(); c.getPerimeter(); c.getArea(); } }
因篇幅问题不能全部显示,请点此查看更多更全内容