欢迎来到天天文库
浏览记录
ID:55294572
大小:45.00 KB
页数:7页
时间:2020-05-09
《实验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
此文档下载收益归作者所有