题目:

在一个正n边形中,所有边的长度都相同,且所有角的度数都相同(即这个多边形是等边等角的)。设计一个名为ReugularPolygon的类,该类包括:

一个名为n的int类型的私有数据域,定义多边形的边数,默认值为3。

一个名为side的double类型私有数据域,存储边的长度,默认值为1。

一个名为x的double类型私有数据域,定义多边形中点的x坐标,默认值为0。

一个名为y的double类型私有数据域,定义多边形中点的y坐标,默认值为0。

一个创建一个具有默认值的正多边形的无参构造方法。

一个能创建指定边数和边长度、中心在(0,0)的正多边形的构造方法。

一个能创建指定边数和边长度、中心在(x,y)的正多边形的构造方法。

所有数据域的访问器和修改器。

一个返回多边形周长的方法getPerimeter()。

一个返回多边形面积的方法getArea().、

编写一个测试程序,分别使用无参构造、ReugularPolygon(6, 4)、ReugularPolygon(10, 4, 5.6, 7.8)创建三个ReugularPolygon对象。显示每个对象的周长和面积。

ReugularPolygon类:

package problem;

public class ReugularPolygon {
	private int n;      //正多边形边数
	private double side;//正多边形边长
	private double x;   //正多边形中心坐标x
	private double y;   //正多边形中心坐标y
	//无参构造
	public ReugularPolygon() {
		this(3, 1, 0, 0);
	}
	//有参构造
	public ReugularPolygon(int n, double side) {
		this(n, side, 0, 0);
	}
	public ReugularPolygon(int n, double side, double x, double y) {
		this.n = n;
		this.side = side;
		this.x = x;
		this.y = y;
	}
	//访问器和修改器
	public int getN() {
		return n;
	}

	public void setN(int n) {
		this.n = n;
	}

	public double getSide() {
		return side;
	}

	public void setSide(double side) {
		this.side = side;
	}

	public double getX() {
		return x;
	}

	public void setX(double x) {
		this.x = x;
	}

	public double getY() {
		return y;
	}

	public void setY(double y) {
		this.y = y;
	}
	//返回周长
	public double getPerimeter() {
		return n*side;
	}
	//返回面积
	public double getArea() {
		return (n*side)/(4*Math.tan(Math.PI/n));
	}
	
}

ReugularPolygonTest类:

package problem;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class ReugularPolygonTest {

	@Test
	void test() {
		ReugularPolygon reugularPolygon1 = new ReugularPolygon();
		System.out.println("reugularPolygon1's perimeter is "+reugularPolygon1.getPerimeter());
		System.out.println("reugularPolygon1's area is "+reugularPolygon1.getArea());
		
		ReugularPolygon reugularPolygon2 = new ReugularPolygon(6, 4);
		System.out.println("reugularPolygon2's perimeter is "+reugularPolygon2.getPerimeter());
		System.out.println("reugularPolygon2's area is "+reugularPolygon2.getArea());
		
		ReugularPolygon reugularPolygon3 = new ReugularPolygon(10, 4, 5.6, 7.8);
		System.out.println("reugularPolygon3's perimeter is "+reugularPolygon3.getPerimeter());
		System.out.println("reugularPolygon3's area is "+reugularPolygon3.getArea());
	}

}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐