



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYJAVA语言程序设计实验报告齐心编著翟亚红审核计算机实验教学示范中心2013年 1 月精选文库实验二Java 类编程练习实验目的:1掌握类及类的声明2掌握对象的定义和使用3掌握接口的定义与实现实验内容:1. 对象的创建和使用编写一个圆环类Ring 的 Java程序。圆环类有3 个数据成员,分别是内半径 innerRadius,外半径 outerRadius和颜色 color,这些属性通过 get 和 set 方法进行封装。 另外,圆环类中的 getArea 方法可以返回其面积。 把程序中的代码补充完整,并查看结果
2、。publicclassRing privatedoubleinnerRadius;privatedoubleouterRadius;publicString color;publicRing(doubleiRadius,doubleoRadius, String c) / 初始化数据成员this.innerRadius = iRadius;this.outerRadius = oRadius;this.color = c;/ 用get 和set 方法封装数据成员publicdoublegetInnerRadius() returninnerRadius;publicvoidsetInnerR
3、adius(doubleinnerRadius) 2精选文库this.innerRadius = innerRadius;publicdoublegetOuterRadius() returnouterRadius;publicvoidsetOuterRadius(doubleouterRadius) this.outerRadius = outerRadius;publicString getColor() returncolor;publicvoidsetColor(String color) this.color = color;publicdoublegetArea() returnM
4、ath.PI* (getOuterRadius()*getOuterRadius()-getInnerRadius()* getInnerRadius();publicdoublegeticricle()/ 内周长return2*Math.PI*getInnerRadius();publicdoublegetocricle()/ 内周长return2*Math.PI*getOuterRadius();publicstaticvoidmain(String args) Ring ring =new Ring(5, 8,"red");double ring1,ring2;Sys
5、tem.out.println(" 圆环的内半径 : "+ ring.getInnerRadius();System.out.println(" 圆环的外半径 : "+ ring.getOuterRadius();System.out.println(" 圆环的颜色 : "+ ring.color);System.out.println(" 圆环的面积 : "+ ring.getArea() +"n" );3精选文库ring.setInnerRadius(4);ring.setOuterRadi
6、us(6);/ 设置圆环 ring的外半径为 6ring.setColor("blue");ring1=ring.geticricle();ring2=ring.getocricle();System.out.println(" 圆环的内半径 : "+ ring.getInnerRadius();System.out.println(" 圆环的外半径 : "+ ring.getOuterRadius();System.out.println(" 圆环的颜色 : "+ ring.color);System.out.p
7、rintf(" 圆环的面积 : %.2fn", ring.getArea();System.out.printf(" 圆环的内周长 : %.2fn", ring1);System.out.printf(" 圆环的外周长 : %.2fn", ring2);运行结果:圆环的内半径 : 5.0圆环的外半径 : 8.0圆环的颜色 : red圆环的面积圆环的内半径 : 4.0圆环的外半径 : 6.0圆环的颜色 : blue圆环的面积 : 62.83圆环的内周长 : 25.134精选文库圆环的外周长 : 37.70思考:1) 将程序中的语句Rin
8、g ring= new Ring(5,8,"red");改成 Ring ring=new Ring();修改后编译运行,此时有错误发生吗?分析错误的原因。2) 接着为程序添加一个如下所示的默认构造函数, 观察程序运行是否还有上述错误发生?public Ring() innerRadius = 1.0;outerRadius = 2.0;color = "white"答:没有错误发生。3) 如果在输出圆环的面积时要求保留两位小数,程序如何修改?答: System.out .printf(" 圆环的面积 : %.2fn", ring.ge
9、tArea();4) 请为圆环类 Ring 在添两个方法以便能返回内圆和外圆的周长,然后在主函数 main()中分别创建两个对象 ring1,ring2 以显示周长。答: System.out .printf(" 圆环的内周长 : %.2fn", ring1);System.out .printf(" 圆环的外周长 : %.2fn", ring2);5精选文库2. 使用类来封装对象的属性和功能编写一个 Java程序,该程序中有 3 个类:Trangle、Lader 和 Circle,分别用来刻画“三角形” 、“梯形”和“圆形”。具体要求如下:Trangl
10、e 类具有类型为double 的三个边 (sideA,sideB,sideC),以及周长(length)、面积 (area)属性, Trangle 类具有返回周长 (getLength)、面积 (getArea)以及修改三个边 (setABC)的功能。另外还有一个 boolean 型的属性 (boo),该属性用来判断三个数是否构成一个三角形。Lader 类具有类型为 double 的上底 (above)、下底(bottom)、高(height)、面积(area)属性,具有返回面积 (getArea)的功能。Circle 类具有类型为 double 的半径 (radius)、周长 (length
11、)和面积 (area)属性,具有返回周长 (getLength)、面积 (getArea)的功能。把程序中的代码补充完整,并查看结果。classTrangledoublesideA , sideB , sideC , area , length;booleanboo ;publicTrangle(doublea,doubleb,doublec)setABC(a,b,c);/ 带参数的构造方法doublegetLength() if( boo )returnsideA +sideB +sideC ;elseSystem.out .println(" 不是一个三角形 , 不能计算周长 &
12、quot; );return0;6精选文库publicdoublegetArea()if( boo )doublep=(sideA +sideB +sideC )/2.0;area =Math.sqrt(p*(p-sideA )*(p-sideB )*(p-sideC ) ;returnarea ;elseSystem.out .println(" 不是一个三角形 , 不能计算面积 " );return0;publicvoidsetABC(doublea,doubleb,doublec)/ 参数 a,b,c分别赋值给 sideA,sideB,sideC/【补充代码 】sid
13、eA =a;sideB =b;sideC =c;if (a+b>c&&a+c>b&&b+c>a)/a,b,c构成三角形的条件表达式/ 给 boo 赋值。【补充代码】boo =true;else/ 给boo 赋值。【补充代码】boo =false;classLader7精选文库doubleabove , bottom, height, area ;Lader(doublea,doubleb,doubleh)/ 带参数的构造方法,将参数a,b,h分别赋值给 above,bottom,height【补充代码 】this. above =a;this.
14、 bottom=b;this. height=h;doublegetArea()/ 方法体, , 要求计算出 area 返回/【补充代码 】return0.5*(above +bottom)* height;classCircledoubleradius, area ,length;Circle(doubler)/ 带参数的构造方法【补充代码this. radius=r;doublegetArea()/ 方法体,要求计算出 area 返回【补充代码 】returnMath.PI * radius* radius;doublegetLength()/getArea方法体的代码 , 要求计算出 l
15、ength返回【补充代码 】return2*Math.PI * radius;voidsetRadius(doublenewRadius)8精选文库radius=newRadius;doublegetRadius()returnradius;publicclassAreaAndLengthpublicstaticvoidmain(String args)doublelength,area;Circle circle =null;Trangle trangle =null;Lader lader =null;/ 创建对象 circle(半径为 5) 【补充代码】circle=new Circle
16、(5);/ 创建对象 trangle(边长分别为 3,4,5)【补充代码】trangle=new Trangle(3,4,5);/ 创建对象 lader 【补充代码】lader=new Lader(3,4,5);/ circle调用方法返回周长并赋值给 length【补充代码】length=circle.getLength();System.out .println(" 圆的周长 :" +length);/ circle调用方法返回面积并赋值给 area【补充代码】area=circle.getArea();System.out .println(" 圆的面积 :
17、" +area);/ trangle调用方法返回周长并赋值给 length【补充代码】length=trangle.getLength();System.out .println(" 三角形的周长 :"+length);/ trangle调用方法返回面积并赋值给 area 【补充代码】area=trangle.getArea();System.out .println(" 三角形的面积 :" +area);9精选文库/ lader调用方法返回面积并赋值给 area 【补充代码】area=lader.getArea();System.out .p
18、rintln(" 梯形的面积 :" +area);/ trangle调用方法设置三个边,要求将三个边修改为12,34,1。【补充代码】trangle.setABC(12,34,1);/ trangle调用方法返回面积并赋值给 area 【补充代码】area=trangle.getArea();System.out .println(" 三角形的面积 :" +area);/ trangle调用方法返回周长并赋值给length【补充代码】length=trangle.getLength();System.out .println(" 三角形的周长
19、:" +length);运行结果:圆的周长圆的面积 :78.53981633974483三角形的周长 :12.0三角形的面积 :6.0梯形的面积 :17.5不是一个三角形 , 不能计算面积三角形的面积 :0.0不是一个三角形 , 不能计算周长三角形的周长 :0.010精选文库3. 掌握上转型对象的使用,多态的特性定义一个抽象 (abstract) 类,类名为 Employee。 Employee 的子类有YearWorker、MonthWorker 和 WeekWorker。YearWorker 对象按年领取薪水( 每年 10 万) ,MonthWorker 对象按月领取薪水 ( 每
20、月 1 万) ,WeekWorker对象按周领取薪水 ( 每周 0.5 万,设定一个月 4 周) 。Employee 类有一个抽象 (abstract) 方法:public abstract double earnings();子类必须重写父类的 earnings() 方法,给出各自领取每年报酬的具体方式。有一个 Company类,该类用 Employee 数组作为成员, Employee 数组的单元可以是 YearWorker 对象、 MonthWorker 对象、 WeekWorker对象的上转型对象。程序能输出 Company对象一年需要支付的薪水总额。请按模版要求,将代码补充完整。ab
21、stractclassEmployee publicabstractdoubleearnings();classYearWorkerextendsEmployee / 重写 earnings()方法【补充代码 】publicdoubleearnings()return100000;classMonthWorkerextendsEmployee / 重写 earnings()方法【补充代码 】publicdoubleearnings()return10000;classWeekWorkerextendsEmployee / 重写 earnings()方法【补充代码 】publicdoubleea
22、rnings()return5000;classCompany Employeeemployees;11精选文库doublesalaries= 0;Company(Employee employees) this. employees= employees;publicdoublesalariesPay() salaries= 0;/计算 salaries【补充代码 】for(intj = 0; j <employees . length ; j+)salaries+=employees j.earnings();returnsalaries;publicclass HardWork p
23、ublicstaticvoidmain(String args) Employee employees =new Employee20;for(inti = 0; i < employees.length ; i+) if(i%3=0)employeesi =new WeekWorker();elseif(i%3=1)employeesi =new MonthWorker();elseif(i%3=2)employeesi =new YearWorker();Company company =new Company(employees);System.out .println("
24、; 公司年工资总额 :"+ company.salariesPay();运行结果:公司年工资总额 :705000.012精选文库4. 掌握嵌套类和内部类的概念和用法编写一个程序要求定义一个外部类 Outer ,然后在 Outer 类中定义一个内部类 Inner 和局部类 Local ,内部类 Inner 和局部类 Local 的任务都是显示出外部类中的数组元素,然后求出这些数组元素的平均值。请按模版要求,将代码补充完整。classOuter privateintdata ;Outer(intx) data= x;voidcheckInner() Inner innerObj =new
25、 Inner();/ 调用 Inner 对象的 show ()方法 【补充代码】innerObj.show();System.out .println(" 内部类计算的平均值 : "+ innerObj.average();voidcheckLocal() classLocal voidshow() System.out .print(" 从局部类显示数组元素 :" );for( inti = 0; i <data . length; i+) System.out .print(data i +" ");System.out .println();intav
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 盘山县高中数学试卷
- 包装要求合同
- 大同市人民医院冰冻切片诊断资格认证
- 呼和浩特市人民医院血细胞化学染色技术操作与判读考核
- 2024秋四年级英语上册 Unit 3 My friends课时2 Let's learn-Let's chant说课稿 人教PEP
- 中标顺延合同
- 本单元复习与测试教学设计-2025-2026学年小学英语六年级下册人教版(新起点)
- 个人购房担保借款合同
- 2025医疗设备中介合同
- 第18课 心存感恩传递爱教学设计-2025-2026学年小学心理健康四年级下册教科版
- 四议两公开工作法课件
- 供应链金融业务培训课件
- 幼儿教育政策法规解读-高职-学前教育专业课件
- DF4内燃机车电路图
- 《八段锦教学》PPT课件
- 中国联通IMS接口规范 第三分册:Sh接口 V1.0
- GB∕T 4162-2022 锻轧钢棒超声检测方法
- 住宅产业化发展情况汇报
- 有限空间作业安全培训
- 湿式报警阀概述(课堂PPT)
- 中国瓷器发展史(课堂PPT)
评论
0/150
提交评论