已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验三 类与对象、继承【目的】 使用类来封装对象的属性和功能;掌握类变量与实例变量,以及类方法与实例方法的区别;掌握使用package和import语句。巩固以下概念:子类的继承性子类对象的创建过程成员变量的继承与隐藏方法的继承与重写【内容】1三角形、梯形和圆形的类封装 实验要求:编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。具体要求如下:a)Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。b)Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。c)Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。程序运行效果 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(sideA+sideBsideC&sideB+sideCsideA&sideA+sideCsideB) /a,b,c构成三角形的条件表达式 boo=true;/给boo赋值。 else boo=false; /给boo赋值。 double getLength() if(boo) double length=sideA+sideB+sideC; return length; /方法体,要求计算出length的值并返回 else System.out.println(不是一个三角形,不能计算面积); return 0; 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(sideA+sideBsideC&sideB+sideCsideA&sideA+sideCsideB) /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() double area=(above+bottom)*height/2; return area;/方法体,,要求计算出area返回 class Circle double radius,area; Circle(double r) radius=r; /方法体 double getArea() area=3.14*radius*radius; return area;/方法体,要求计算出area返回 double getLength() double length=2*radius*3.14; return length;/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(4);/创建对象circle trangle=new Trangle(2,2,2);/创建对象trangle lader=new Lader(3,3,3); /创建对象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); 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); 实验后的练习:1. 程序中仅仅省略【代码15】,编译能通过吗?能2. 程序中仅仅省略【代码16】,编译能通过吗?能3. 程序中仅仅省略【代码15】,运行时出现怎样的异常提示? 4.给Trangle类增加3个方法,分别用来返回3个边:sideA、sideB和sideC。Return sideAReturn sideBReturn sideC5.让AreaAndLength类中的circle对象调用方法修改半径,然后输出修改后的半径以及修改半径后的圆的面积和周长。circle.setRadius(7); System.out.println(修改后的半径:+circle.getRadius(); area=circle.getArea(); length=circle.getLength(); System.out.println(修改半径后的 面积:+area); System.out.println(修改半径后的 周长:+length);2实例成员与类成员。 实验要求:按程序模板的要求编写源文件,要特别注意程序的输出结果,并能正确解释输出的结果。 程序运行效果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()。 实验后的练习:1. 将inputA()方法中的System.out.println(a);改写为System.out.println(a+b);编译是否出错?为什么?否2. 将inputB()方法中的System.out.println(b);改写为System.out.println(a+b);编译是否报错?为什么?否3使用package语句与import语句。 实验要求:按实验要求使用package语句,并用import语句使用Java平台提供的包中的类以及自定义包中的类。掌握一些重要的操作步骤。 实验后的练习:假设SDK的安装目录是E:jdk1.5,那么Java运行系统默认classpath的值是:E:jdk1.5jrelibrt.jar;.;其中的“”表示应用程序可以使用当前目录中的无名包类以及当前目录下的子目录中的类,子目录中的类必须有包名,而且包名要和子目录结构相对应。因此,如果将模板2应用程序Sunrise.java的字节码文件存放到d:5000中,并将SquareEquation.java的字节码文件存放在D:5000tomjiafei中,那么就不需要修改classpath。要特别注意的是,因为SquareEquation.java有包名,切不可将Sq
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 胆囊恶性肿瘤的护理
- 雨课堂学堂在线学堂云步步为营:跨文化商务沟通实战浙江机电职业技术学院单元测试考核答案
- 高考化学“8+1”模拟练试卷含答案(十九)
- 2026年宁波市卫生健康委直属事业单位成都专场招聘高层次人才235人历年真题汇编及答案解析(夺冠)
- 浙江国企招聘-2025年杭州市临安区城市发展投资集团有限公司下属子公司公开招聘工作人员1人备考题库附答案解析(夺冠)
- 2025辽宁大连交通大学招聘高层次人才6人(第三批)参考题库附答案解析
- 2026年质量员之土建质量专业管理实务考试题库200道及参考答案【研优卷】
- 招184人!2025年青藏铁路集团公开招聘历年真题汇编附答案解析
- 2026年消防条令纲要知识考试题库附答案【培优a卷】
- 2026年注册岩土工程师考试题库200道带答案(能力提升)
- 肺癌术后治疗用药指导
- DB45∕T 2364-2021 公路路基监测技术规范
- 学校送医管理办法
- 脚手架拆除工程合同
- 酒店稽核管理办法
- 医院会计招聘面试题
- 关于英语交际教学法课件
- 泌尿系肿瘤手术麻醉管理
- 中医多囊卵巢综合症课件
- 劳动教育汇报课件模板
- 海南省宅基地管理办法
评论
0/150
提交评论