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的半径、周长和面积属性,具有返回周长、面积的功能。
2.实例成员与类成员。
² 实验要求:
按程序模板的要求编写源文件,要特别注意程序的输出结果,并能正确解释输出的结果。
3.使用package语句与import语句。
² 实验要求:
按实验要求使用package语句,并用import语句使用Java平台提供的包中的类以及自定义包中的类。掌握一些重要的操作步骤。
² 实验要求:
编写一个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; } } }
相关文章推荐
- Java设计模式(十一) 享元模式
- Java开发人员必懂的基础——反射与动态代理
- java表达式问题 奇数性
- Java设计模式(十一) 享元模式
- Java设计模式(十一) 享元模式
- Stream流常用操作
- JAVA之SWING-JFrameDem
- 《java入门第一季》正则表达式小案例
- 《java入门第一季》正则表达式小案例
- 《java入门第一季》之ArrayList集合小案例
- 《java入门第一季》之ArrayList集合小案例
- Java---记录用户名和密码,保存至隐藏文件
- 【华为OJ】【104-201301JAVA题目0-1级】
- Lambda表达式中类型推断
- Eclipse添加maven依赖找不到maven库中的jar
- Java---隐藏文件查看器
- Java多维数组使用需要注意的事项
- Spring概括总结
- IDEA 常见问题
- eclipse 保持代码干净