已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYJAVA语言程序设计实验报告 齐心编著翟亚红审核计算机实验教学示范中心2013年1月实验二 Java类编程练习实验目的:1 掌握类及类的声明2 掌握对象的定义和使用3 掌握接口的定义与实现实验内容:1. 对象的创建和使用编写一个圆环类Ring的Java程序。圆环类有3个数据成员,分别是内半径innerRadius,外半径outerRadius和颜色color,这些属性通过get和set方法进行封装。另外,圆环类中的getArea方法可以返回其面积。把程序中的代码补充完整,并查看结果。public class Ring private double innerRadius;private double outerRadius;public String color;public Ring(double iRadius, double oRadius, String c) / 初始化数据成员this.innerRadius = iRadius;this.outerRadius = oRadius;this.color = c;/ 用get和set方法封装数据成员public double getInnerRadius() return innerRadius;public void setInnerRadius(double innerRadius) this.innerRadius = innerRadius;public double getOuterRadius() return outerRadius;public void setOuterRadius(double outerRadius) this.outerRadius = outerRadius;public String getColor() return color;public void setColor(String color) this.color = color;public double getArea() return Math.PI* (getOuterRadius() * getOuterRadius() - getInnerRadius()* getInnerRadius();public double geticricle() /内周长return 2*Math.PI*getInnerRadius();public double getocricle() /内周长return 2*Math.PI*getOuterRadius();public static void main(String args) Ring ring = new Ring(5, 8, red);double ring1,ring2;System.out.println(圆环的内半径: + ring.getInnerRadius();System.out.println(圆环的外半径: + ring.getOuterRadius();System.out.println(圆环的颜色: + ring.color);System.out.println(圆环的面积: + ring.getArea() + n);ring.setInnerRadius(4);ring.setOuterRadius(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.printf(圆环的面积: %.2fn , ring.getArea();System.out.printf(圆环的内周长: %.2fn , ring1);System.out.printf(圆环的外周长: %.2fn , ring2);运行结果:圆环的内半径: 5.0圆环的外半径: 8.0圆环的颜色: red圆环的面积: 122.52211349000193圆环的内半径: 4.0圆环的外半径: 6.0圆环的颜色: blue圆环的面积: 62.83圆环的内周长: 25.13圆环的外周长: 37.70思考:1) 将程序中的语句Ring 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.getArea();4) 请为圆环类Ring在添两个方法以便能返回内圆和外圆的周长,然后在主函数main()中分别创建两个对象ring1,ring2以显示周长。答:System.out.printf(圆环的内周长: %.2fn , ring1); System.out.printf(圆环的外周长: %.2fn , ring2);2. 使用类来封装对象的属性和功能编写一个Java程序,该程序中有3个类:Trangle、Lader和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。具体要求如下:Trangle类具有类型为double的三个边(sideA,sideB,sideC),以及周长(length)、面积(area)属性,Trangle类具有返回周长(getLength)、面积(getArea)以及修改三个边(setABC)的功能。另外还有一个boolean型的属性(boo),该属性用来判断三个数是否构成一个三角形。Lader类具有类型为double的上底(above)、下底(bottom)、高(height)、面积(area)属性,具有返回面积(getArea)的功能。Circle类具有类型为double的半径(radius)、周长(length)和面积(area)属性,具有返回周长(getLength)、面积(getArea)的功能。把程序中的代码补充完整,并查看结果。/import javax.swing.text.TabableView;class Trangle double sideA,sideB,sideC,area,length; boolean boo; public Trangle(double a,double b,double c) setABC(a,b,c);/带参数的构造方法 double getLength() if(boo) return sideA+sideB+sideC; 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) /参数a,b,c分别赋值给sideA,sideB,sideC/ 【补充代码】 sideA=a; sideB=b; sideC=c; if(a+bc&a+cb&b+ca) /a,b,c构成三角形的条件表达式 /给boo赋值。【补充代码】 boo=true; else /给boo赋值。 【补充代码】 boo=false; class Lader double above,bottom,height,area; Lader(double a,double b,double h) /带参数的构造方法,将参数a,b,h分别赋值给above,bottom,height 【补充代码】 this.above=a; this.bottom=b; this.height=h; double getArea() /方法体,,要求计算出area返回/ 【补充代码】 return 0.5*(above+bottom)*height; class Circle double radius,area, length; Circle(double r) /带参数的构造方法 【补充代码 this.radius=r; double getArea() /方法体,要求计算出area返回【补充代码】 return Math.PI*radius*radius; double getLength() /getArea方法体的代码,要求计算出length返回【补充代码】return 2*Math.PI*radius; 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 = null; Lader lader = null; /创建对象circle(半径为5)【补充代码】 circle=new Circle(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(圆的面积:+area); / trangle调用方法返回周长并赋值给length 【补充代码】 length=trangle.getLength(); System.out.println(三角形的周长:+length); / trangle调用方法返回面积并赋值给area【补充代码】 area=trangle.getArea(); System.out.println(三角形的面积:+area); / lader调用方法返回面积并赋值给area 【补充代码】 area=lader.getArea(); System.out.println(梯形的面积:+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(三角形的周长:+length); 运行结果:圆的周长:31.41592653589793圆的面积:78.53981633974483三角形的周长:12.0三角形的面积:6.0梯形的面积:17.5不是一个三角形,不能计算面积三角形的面积:0.0不是一个三角形,不能计算周长三角形的周长:0.03. 掌握上转型对象的使用,多态的特性定义一个抽象(abstract)类,类名为Employee。 Employee的子类有YearWorker、MonthWorker和WeekWorker。YearWorker对象按年领取薪水(每年10万),MonthWorker对象按月领取薪水(每月1万),WeekWorker对象按周领取薪水(每周0.5万,设定一个月4周)。Employee类有一个抽象(abstract)方法:public abstract double earnings();子类必须重写父类的earnings()方法,给出各自领取每年报酬的具体方式。有一个Company类,该类用Employee数组作为成员,Employee数组的单元可以是YearWorker对象、MonthWorker对象、WeekWorker对象的上转型对象。程序能输出Company对象一年需要支付的薪水总额。请按模版要求,将代码补充完整。abstract class Employee public abstract double earnings();class YearWorker extends Employee /重写earnings()方法【补充代码】public double earnings()return 100000;class MonthWorker extends Employee /重写earnings()方法【补充代码】public double earnings()return 10000;class WeekWorker extends Employee /重写earnings()方法【补充代码】public double earnings()return 5000;class Company Employee employees;double salaries = 0;Company(Employee employees) this.employees = employees;public double salariesPay() salaries = 0;/计算salaries【补充代码】for (int j = 0; j employees.length; j+)salaries+=employeesj.earnings();return salaries;public class HardWork public static void main(String args) Employee employees = new Employee20;for (int i = 0; i employees.length; i+) if(i%3=0)employeesi = new WeekWorker();else if(i%3=1)employeesi = new MonthWorker();else if(i%3=2)employeesi = new YearWorker();Company company = new Company(employees);System.out.println(公司年工资总额: + company.salariesPay();运行结果:公司年工资总额:705000.04. 掌握嵌套类和内部类的概念和用法编写一个程序要求定义一个外部类Outer,然后在Outer类中定义一个内部类Inner和局部类Local,内部类Inner和局部类Local的任务都是显示出外部类中的数组元素,然后求出这些数组元素的平均值。请按模版要求,将代码补充完整。class Outer private int data;Outer(int x) data = x;void checkInner() Inner innerObj = new Inner(); / 调用Inner对象的show()方法 【补充代码】innerObj.show();System.out.println(内部类计算的平均值: + innerObj.average();void checkLocal() class Local void show() System.out.print(从局部类显示数组元素:);for (int i = 0; i data.length; i+) System.out.print(datai + );System.out.println(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 短期客房租赁合同范本
- 2025一级建造师真题答案及解析
- 安庆民营经济增加值研究
- 2025年心理健康辅导员考试及答案
- 2025年江苏淮安市高级职业技术学校招聘教师15人笔试模拟试题及参考答案
- 2025年河北省武安市辅警招聘考试试题题库有答案详解
- 2025年脂类的试题及答案
- 2025年制止餐饮浪费试题及答案
- 电商行业跨境电商进口政策研究
- 2019年中级银行从业资格《银行业法律法规与综合能力》真题练习试题 附
- 质量文化的培训课件
- JBT 6697-2023 农林拖拉机和机械 电气设备 基本技术规范 (正式版)
- 婴幼儿托育服务与管理的职业生涯规划职业目标自我分析职业定位实施计划
- JCT2460-2018 预制钢筋混凝土化粪池
- 蒋婷婷-《书包里的故事》
- 《针灸治疗》课件-第六节 剧痛证-泌尿系绞痛
- 保健食品广告审查表
- 冀教版五年级数学上册《综合与实践》教学设计
- 健身房会计账务处理
- 中南大学湘雅二医院神经外科重点专科申报书内容
- 2023版浙江评审卫生高级专业技术资格医学卫生刊物名录
评论
0/150
提交评论