编写一个完整的Java Application 程序。包含接口ShapeArea, Rectangle类,Triangle类及Test类,具体要求如下: (1)为接口ShapeAr

编写一个完整的Java Application 程序。包含接口ShapeArea, Rectangle类,Triangle类及Test类,具体要求如下:(共计17分)

(1)为接口ShapeArea定义两个方法:(2分)
  double getArea(  ); //求一个形状的面积
  double getPerimeter (  );//求一个形状的周长
  
⑵类 Rectangle:实现ShapeArea接口,并有以下属性和方法:(5分)

1) 属性
width: double类型,表示矩形的宽
length: double类型,表示矩形的长

2) 方法
  Rectangle(double w, double h) //构造函数,为长宽赋值
  toString(  ) //成员方法,输出矩形的描述信息,如“width=1.0,length=2.0,perimeter=6.0, area=2.0”
  
⑶类Triangle:实现ShapeArea接口,并有以下属性和方法:(5分)

1) 属性
  x,y,z: double型,表示三角形的三条边
  s: 周长的1/2(注:求三角形面积公式为s*(s-x)(s-y)(s-z)的平方根,其中s=(x+y+z)/2 ,开方可用Math.sqrt(double)方法)
  
2)方法
  Triangle(double x, double y, double z) //构造函数,给三条边和s赋初值。
  toString(  )//成员方法,输出三角形的描述信息,如“three sides:3.0,4.0,5.0,perimeter=12.0,area=6.0”
  
⑷Test类作为主类要完成测试功能(5分)

1) 生成Rectangle对象,并调用对象的toString()方法,输出对象的描述信息
2)生成Triangle对象,并调用对象的toString()方法,输出对象的描述信息

接口:ShapeArea

package 中国;

public interface ShapeArea {
	double getArea();求一个形状的面积
	double getPerimeter();//求一个形状的周长
}

类:Rectangle

package 中国;

public class Rectangle implements ShapeArea {
	
	private double width;//表示矩形的宽
	private double length;//表示矩形的长
	
	public Rectangle(){}
	
	public Rectangle(double w, double h){  //构造函数,为长宽赋值
		this.width=w;
		this.length=h;
	}
	
	

	@Override
	public String toString() {
		return "Rectangle [width=" + getWidth() + ", length=" + getLength() + 
				", perimeter="+getPerimeter()+", area="+getArea()+"]";
	}



	@Override
	public double getArea() {
		// TODO Auto-generated method stub
		return getWidth()*getLength();
	}

	@Override
	public double getPerimeter() {
		// TODO Auto-generated method stub
		return (getWidth()+getLength())*2;
	}



	public double getWidth() {
		return width;
	}



	public void setWidth(double width) {
		this.width = width;
	}



	public double getLength() {
		return length;
	}



	public void setLength(double length) {
		this.length = length;
	}

}

类:Triangle

package 中国;
//注:求三角形面积公式为s*(s-x)*(s-y)*(s-z)的平方根,其中s=(x+y+z)/2 ,开方可用Math.sqrt(double)方法
public class Triangle implements ShapeArea {
	
	private double x,y,z;//三角形的三边
	private double s;//周长的一半
	
	public Triangle(){}
	
	public Triangle(double x, double y, double z) {
		super();
		this.x = x;
		this.y = y;
		this.z = z;
	}


	@Override
	public String toString() {
		return "Triangle [x=" + x + ", y=" + y + ", z=" + z + 
				", perimeter="+getPerimeter()+", area="+getArea()+"]";
	}

	@Override
	public double getArea() {
		// TODO Auto-generated method stub
		setS();
		return Math.sqrt(getS()*(getS()-getX())*(getS()-getY())*(getS()-getZ()));
	}

	@Override
	public double getPerimeter() {
		// TODO Auto-generated method stub
		setS();
		return getS();
	}

	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 getZ() {
		return z;
	}

	public void setZ(double z) {
		this.z = z;
	}

	public double getS() {
		return s;
	}

	public void setS(/* double s */) {
		this.s = (getX()+getY()+getZ())/2;
	}
}

Test类作为主类

package 中国;

public class Text {
		public static void main(String[] args) {
			Rectangle r = new Rectangle(1,2);
			Triangle t = new Triangle(3,4,5);
			System.out.println(r.toString());
			System.out.println(t.toString());
		}
}

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱睡觉的小馨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值