Java图形类的实现

编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画 “三角形”、“梯形”和“圆形”。

具体要求如下:

a) Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回 周长、面积以及修改三个边的功能。另外,Trangle类还具有一个boolean型的属性,该属性 用来判断三个属能否构成一个三角形。

b) Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。

c) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。

代码如下

package class4图形类的实现;

import java.util.Scanner;

class Trangle//定义一个三角形类
{
	double sideA,sideB,sideC,area,length;
	boolean boo;
	public Trangle(double a,double b,double c)//为什么a,b,c不能同时定义
	{
		sideA=a;
		sideB=b;
		sideC=c;
		if((sideA+sideB)>=sideC&&(sideA-sideB)<=sideC)
		{
			boo=true;
		}
		else
		{
			boo=false;
		}
	}
	
	double getLength()
	{
		this.length=sideA+sideB+sideC;
		return length;
	}
	
	
	public double getArea()
	{
		if(boo)
		{
			double s=(sideA+sideB+sideC)/2.0;
			this.area=Math.sqrt(s*(s-sideA)*(s-sideB)*(s-sideC));
			return area;
		}
		else
		{
			System.out.println("不是一个三角形,不能计算面积");
			return 0;
		}
	}
	
	
	
	public void setABC(double a,double b,double c)
	{
		sideA=a;
		sideB=b;
		sideC=c;
		if((sideA+sideB)>=sideC&&(sideA-sideB)<=sideC)
		{
			boo=true;
		}
		else
		{
			boo=false;
		}
	}
	
	
	//给Trangle类增加3个方法,分别用来返回3个边:sideA、sideB和sideC
	public double getsideA(double a)
	{
		return sideA;
	}
	
	public double getsideB(double b)
	{
		return sideB;
	}
	
	public double getsideC(double c)
	{
		return sideC;
	}
}



class Lader//定义一个梯形类
{
	double above,bottom,height,area;
	Lader(double a,double b,double h)
	{
		above=a;
		bottom=b;
		height=h;
	}
	
	double getArea()
	{
		this.area=(above+bottom)*height/2;
		return area;
	}
}



class Circle//定义一个圆类
{
	double radius,area,length;
	Circle(double r)
	{
		radius=r;
	}
	
	double getArea()
	{
		this.area=3.14*radius*radius;
		return area;
	}
	
	double getLength()
	{
		this.length=2*3.14*radius;
		return length;
	}
	
	void setRadius(double newRadius)
	{
		radius=newRadius;
	}
	
	double getRadius()
	{
		return radius;
	}
	
	
	
	//让AreaAndLength类中的circle对象调用方法修改半径,然后输出修改后的半径以及
	//修改半径后的圆的面积和周长。
	double fixRadius()
	{
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入要修改的半径为:");
		this.radius=sc.nextDouble();
		return radius;
	}

}




public class exp_4_14_Again //主类
{
	public static void main(String args[])//主函数
	{
		double length,area;
		Circle circle=null;
		Trangle trangle;
		Lader lader;
		
		
		Trangle a = new Trangle(3,4,5);//创建对象
		length=a.getLength();
		System.out.println("三角形的周长:"+length);
		area=a.getArea();
		System.out.println("三角形的面积:"+area);
		
		
		Lader b=new Lader(1,2,2);//创建对象
		System.out.println("梯形的面积:"+area);
		
		
		Circle c=new Circle(10);//创建对象
		length=c.getLength();
		System.out.println("圆的周长:"+length);
		area=c.getArea();
		System.out.println("圆的面积:"+area);
		
		
		Trangle d=new Trangle(12,34,1);
		area=d.getArea();
		System.out.println("三角形的面积:"+area);
		length=d.getLength();
		System.out.println("三角形的周长:"+length);
		
		
	    //输出三角形三条边
		double sideA = 0;
		double sideB = 0;
		double sideC = 0;
		sideA=d.getsideA(sideA);
		sideB=d.getsideB(sideB);
		sideC=d.getsideC(sideC);
		System.out.println("三角形的边长分别为:"+sideA+'\t'+sideB+'\t'+sideC);
		
		
		
		//输出修改后的圆半径、周长及面积
		double newRadius=0;
		double newLength=0;
		double newArea=0;
		newRadius=c.fixRadius();
		System.out.println("修改后圆的半径为:"+newRadius);
		
		newLength=c.getLength();
		System.out.println("修改后圆的周长为:"+newLength);
		
		newArea=c.getArea();
		System.out.println("修改后圆的面积为:"+newArea);
	}
}

运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值