实验7面向对象编程.doc

实验7面向对象编程.doc

ID:55294572

大小:45.00 KB

页数:7页

时间:2020-05-09

实验7面向对象编程.doc_第1页
实验7面向对象编程.doc_第2页
实验7面向对象编程.doc_第3页
实验7面向对象编程.doc_第4页
实验7面向对象编程.doc_第5页
资源描述:

《实验7面向对象编程.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、利用面向抽象的编程思想,计算各种柱体的体积。右图为该程序的UML类图。编写测试类PillarTest,输出底为圆形、长方形、三角形的柱体体积。(在实验3的基础上修改)publicabstractclassGeometry{privatedoubler;Geometry(doubler){this.r=r;}//计算圆的面积publicdoublegetArea();}/***创建一个面向抽象类的的Pillar类**/publicclassPillar{privateGeometrygeometry;privatedoubleheight;Pillar(Geometr

2、ygeometry,doubleheight){this.geometry=geometry;this.height=height;}publicdoublegetVolumn(){returngeometry.getArea()*height;}}/***创建一个Geometry的子类Rectangle**/publicclassRectangleextendsGeometry{doublewidth;doubleheight;Rectangle(doublewidth,doubleheight){this.width=width;this.height=heig

3、ht;}@OverridepublicdoublegetArea(){returnwidth*height;}}/***创建一个Application计算柱体的体积**/publicclassApplication{publicstaticvoidmain(String[]args){Geometrygeometry=newRectangle(10.0,12.0);Pillarpillar=newPillar(geometry,12.0);doublevolumn=pillar.getVolumn();System.out.println("矩形底的柱体的体积:"+

4、volumn);}}要求有一个abstract类,类名为Employee。Employee的子类有YearWorker、MonthWorker和WeekWorker。

YearWorker对象按年薪领取薪水,MonthWorker按月领取薪水,WeekWorker按周领取薪水。

Employee类有一个abstract方法:Publicabstractearnings();子类必须重写父类的earnings()方法,给出各自领取报酬的具体方式。

有一个Company类,该类用Employee数组作为成员,Employee数组的单元

5、可以是YearWorker对象的上转型对象、MonthWorker对象的上转型对象或WeekWorker对象的上转型对象。程序能输出Company对象一年需要支付的薪水总额。packagehomework;classCompany{Employee[]em;//Employee作为成员Company(Employee[]em){//构造函数this.em=em;}publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubEmployee[]em=newEmployee[3];em[0]=newY

6、earWorker(1,12000.0);//上转型对象em[1]=newMonthWorker(11,8000.0);em[2]=newWeekWorker(40,1200.0);Companycom=newCompany(em);doublesum;sum=em[0].earnings()+em[1].earnings()+em[2].earnings();System.out.println("总工资为:"+sum);}}abstractclassEmployee{abstractdoubleearnings();//抽象方法}classMonthWorker

7、extendsEmployee{intmonth;doublemonthSalary;MonthWorker(intm,doubles){month=m;monthSalary=s;}doubleearnings(){returnmonth*monthSalary;}}classWeekWorkerextendsEmployee{intweek;doubleweekSalary;WeekWorker(intw,doubles){week=w;weekSalary=s;}doubleearnings(){returnweek*weekSalary;}}classY

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。