您的位置:首页 > 编程语言 > Java开发

java 实验三 面向对象程序设计(无脑实验系列)

2016-05-23 08:32 585 查看
1.三角形、梯形和圆形的类封装

² 实验要求:

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

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

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

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

package lzy;
class Trangle
{
double sideA,sideB,sideC,area,length;
boolean boo;
public  Trangle(double a,double b,double c)
{
sideA=a;sideB=b;sideC=c;  //参数a,b,c分别赋值给sideA,sideB,sideC
if(a+b>c&&a+c>b&&c+b>a) //a,b,c构成三角形的条件表达式
{
boo=true;  //给boo赋值。
}
else
{
boo=false;  //给boo赋值。
}
}
double getLength()
{
if(boo)
{
length=sideA+sideB+sideC;
return length;
}
else
{
System.out.println("不是一个三角形,不能计算周长");
return 0;
}     //方法体,要求计算出length的值并返回
}
public double  getArea()
{
if(boo)
{
double p=(sideA+sideB+sideC)/2.0;
area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ;
return area;
}
else
{
System.out.println("不是一个三角形,不能计算面积");
return 0;
}
}
public void setABC(double a,double b,double c)
{
sideA=a;sideB=b;sideC=c;//参数a,b,c分别赋值给sideA,sideB,sideC
if(a+b>c&&a+c>b&&c+b>a) //a,b,c构成三角形的条件表达式
{
boo=true; //给boo赋值。
}
else
{
boo=false; //给boo赋值。
}
}
}
class Lader
{
double above,bottom,height,area;
Lader(double a,double b,double h)
{
above=a; bottom=b;height=h; //方法体,将参数a,b,c分别赋值给above,bottom,height
}
double getArea()
{
area=(above+bottom)/2*height;
return area; //方法体,,要求计算出area返回
}
}
class Circle
{
double radius,area;
Circle(double r)
{
radius=r; //方法体
}
double getArea()
{
return 3.14*radius*radius; //方法体,要求计算出area返回
}
double getLength()
{
return 3.14*2*radius; //getArea方法体的代码,要求计算出length返回
}
void setRadius(double newRadius)
{
radius=newRadius;
}
double getRadius()
{
return radius;
}
}
public class AreaAndLength
{
public static void main(String args[])
{
double length,area;
Circle circle=null;
Trangle trangle;
Lader lader;
circle=new Circle(10); //创建对象circle
trangle=new Trangle(3,4,5); //创建对象trangle。
lader=new Lader(3,4,10);//创建对象lader
length=circle.getLength(); // circle调用方法返回周长并赋值给length
System.out.println("圆的周长:"+length);
area=circle.getArea();// circle调用方法返回面积并赋值给area
System.out.println("圆的面积:"+area);
length=trangle.getLength(); // trangle调用方法返回周长并赋值给length
System.out.println("三角形的周长:"+length);
area=trangle.getArea(); // trangle调用方法返回面积并赋值给area
System.out.println("三角形的面积:"+area);
area=lader.getArea(); // lader调用方法返回面积并赋值给area
System.out.println("梯形的面积:"+area);
trangle.setABC(12,34,1); // trangle调用方法设置三个边,要求将三个边修改为12,34,1。
area=trangle.getArea(); // trangle调用方法返回面积并赋值给area
System.out.println("三角形的面积:"+area);
length=trangle.getLength(); // trangle调用方法返回周长并赋值给length
System.out.println("三角形的周长:"+length);
}
}


2.实例成员与类成员。

² 实验要求:

按程序模板的要求编写源文件,要特别注意程序的输出结果,并能正确解释输出的结果。

package lzy;

class A
{
float a;              //声明一个float型实例变量a
static float b;        //声明一个float型类变量b,即static变量b
void setA(float a)
{
this.a=a;         //将参数a的值赋值给成员变量a
}
void setB(float b)
{
this.b=b;      //将参数b的值赋值给成员变量b
}
float getA()
{
return a;
}
float getB()
{
return b;
}
void inputA()
{
System.out.println(a);
}
static void inputB()
{
System.out.println(b);
}
}
public class Example
{
public static void main(String args[])
{
A.b=100;           //通过类名操作类变量b,并赋值100
A.inputB();           //通过类名调用方法inputB()
A cat=new A();
A dog=new A();
cat.setA(200);    //cat象调用方法setA(int a)将cat的成员a的值设置为200
cat.setB(400);    //cat调用方法setB(int b)将cat的成员b的值设置为400
dog.setA(150);    //dog象调用方法setA(int a)将dog的成员a的值设置为150
dog.setB(300);   //dog调用方法setB(int b)将dog的成员b的值设置为300
cat.inputA();   //cat调用inputA()。
cat.inputB(); //cat调用inputB()。
dog.inputA();   //dog调用inputA()。
dog.inputB();   //dog调用inputB()。
}
}


3.使用package语句与import语句。

² 实验要求:

按实验要求使用package语句,并用import语句使用Java平台提供的包中的类以及自定义包中的类。掌握一些重要的操作步骤。

package lzy;

class SunRise
{
public static void main(String args[ ])
{
SquareEquation equation=new SquareEquation(4,5,1);
equation.getRoots();
equation.setCoefficient(-3,4,5);
equation.getRoots();
}
}


package lzy;

public class SquareEquation
{
double a,b,c;
double root1,root2;
boolean boo;
public  SquareEquation(double a,double b,double c)
{
this.a=a;
this.b=b;
this.c=c;
if(a!=0)
{
boo=true;
}
else
{
boo=false;
}
}
public void getRoots()
{
if(boo)
{
System.out.println("是一元2次方程");
double disk=b*b-4*a*c;
if(disk>=0)
{
root1=(-b+Math.sqrt(disk))/(2*a);
root2=(-b-Math.sqrt(disk))/(2*a);
System.out.printf("方程的根:%f,%f\n",root1,root2);
}
else
{
System.out.printf("方程没有实根\n");
}

}
else
{
System.out.println("不是一元2次方程");
}
}
public void setCoefficient(double a,double b,double c)
{
this.a=a;
this.b=b;
this.c=c;
if(a!=0)
{
boo=true;
}
else
{
boo=false;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: