还剩6页未读,继续阅读
文本内容:
实验报告册学年一学期2020-2023
一、预习内容
1、实验目的和要求.理解类的继承的概念,掌握如何定义一个类的子类掌握成员变量的隐臧1java和方法的覆盖掌握和关键字的使用this super.理解类和类的含义,掌握如何定义和使用类和类2final abstractfinal abstract掌握对象的造型与多态的概念,掌握访问修饰符的含义和使用
3..掌握接口的概念与定义,能够区别接口与抽象类
42、实验内容和原理设计一个根据雇员类型利用方法和多态性完成工资单计算的程序
1.abstract是抽象类;Employee的子类有(每星期发给他固定工资,而不计工作时间)、Employee Boss除基本工资外还根据销售额发放浮动工资)、(按CommissionWorker(Pieceworker其生产的产品数发放工资)、(根据工作时间长短发放工资)HourlyWorker该例的的每个子类都声明为因为不需要再继承它们生成子类Employee final,在父类中声明为抽象方法,并且对于每个子类都提供恰当的earnings()earnings实现方法对所有雇员类型都使用方法,但每个人挣的工资按他所属earnings()的雇员类计算,所有雇员类都是从父类派生出的为了计算雇员的工资,Employee程序仅仅使用雇员对象的一个父类引用并调用方法earnings一个实际的工资系统中,各种对象的引用可以通过一个引用数Employee Employee组来实现程序依次使用数组的每个元素引用)调用每个对象的(Employee方法employee
3、实验所用主要仪器设备(或实验环境)软件Eclipse
4、实验方案设计(思路、步骤和方法等)设计一个根据雇员类型利用方法和多态性完成工资单计算的程序L abstract是抽象类;Employee的子类有(每星期发给他固定工资,而不计工作时间)、Employee Boss除基本工资外还根据销售额发放浮动工资)、(按CommissionWorker(Pieceworker其生产的产品数发放工资)、(根据工作时间长短发放工资)HourlyWorker该例的的每个子类都声明为因为不需要再继承它们生成子类Employee final,在父类中声明为抽象方法,并且对于每个子类都提供恰当的实earnings earnings现方法对所有雇员类型都使用方法,但每个人挣的工资按他所属的earnings()雇员类计算,所有雇员类都是从父类派生出的为了计算雇员的工资,Employee程序仅仅使用雇员对象的一个父类引用并调用方法earnings一个实际的工资系统中,各种对象的引用可以通过一个引用数Employee Employee组来实现程序依次使用数组的每个元素引用)调用每个对象的(Employee方法employee
二、实验数据(现象)记录及结果处理实验代码如图所示Stest,javaH|packagewubinghao;//抽象雇贝类abstractclassEmployee{//声明防水变量和挣钱方法privatedoublesalary=0;abstractvoidearnings;//Setter,GetterpublicdoublegetSalary{returnsalary;}publicvoidsetsalarydoublesalary{this.salary=salary;}finalclassBossextendsEmployee团JavaH|finalclassBoss«xt«ndsEmployeeprivate±ntDay=0;privatestaticfinaldoubleMONTHLY_PAY-8040;//月薪publicBoss{supex;|//用于初始化一个干了Day天的老板publicBossIntDay{super;this.Day-Day;30OverrideIvoidearnings{sczs^l^ryMONTHLY_PAY•Day;Sy3gm.out.printIn板可以4#:♦qetsalary♦元工资.”;
①*test.javaJ
3.finalclassCommissionWorkerextendsEmployee{privateintDay=0;privatedoubleDayPay=
60.4;//每天加薪privatestaticfinaldoubleMONTHLY_PAY=2000;〃正式工的月薪publicCommissionWorker{super;}//用于初始化一个干了Day那正式工publicConroissionWorkerintDay{super;this.Day=Day;}e©Override4voidearnings{setsalaryMONTHL匚PAY+Day*DayPay;0»test.java区[■4voidearningssetsalaryMONTHE匚PAY+Day*DayPay;System.out.printin正式工的工资是+getSalaryO+元人民币;finalclassPieceworkerextendsEmployee{privateintpieces=0;//f牛数privatefinaldoublePIECES_PRICE=
96.4;//件工资publicPieceworker{super;}//初始化一个干了pieces件脓计件工publicPieceworkerintpieces{super;this.pieces=pieces;白*tGst.java£
3.-©Override4voidearnings{setsalarypieces*PIECES_PRICE;System.out.printin这个计件工的工资是+getsalary+元人民币♦;}}H小时工限时间算finalclassHourlyWorkerextendsEmployee{privateinthour=0;//小时privatefinaldoubl*HOUR_PRICE=
78.9;//小时工资publicHourlyWorkersuper{;}publicHourlyWorkerinthour{super0;Z*test.java区.publicHourlyWorkerinthour{super;this.hour=hour;}・@Override4voidearnings{setsalaryhour*HOUR_PRICE;System.out.printin小时工的工资是+getSalaryO+元人民币;}//主类测试类classHellopublicstaticvoidmainString]args{//初始化一个雇员数组|Employeeemployee[]=newEmployee
[4];employee
[0]=newBoss23;l£j•,•java3।।//主类测试类classHello{publicstaticvoidmainString[args{//初始化一个雇员数组Employeeemployee[J=newEmployee
[4];employee
[0]=newBoss23;employee[1J=n«wCommissionWorker33;employee
[2]=n«wPieceworker44;employee
[3]=nwHourlyworker55;//循环调用方法forEmployeeworker:employee{worker.earnings;输出结果如下图所示:1rob邳*JavBx;SCtreoleKtemiinatedHelo[JavaApplication]tVava^fel.S.OJSiybin^aw.exe2022^12^1491^11^:40斗二三:
一、二二二正虹工资是
3993.2元人丽计件工工飕:
4246.沅人艮和岫工工资是433g.5元人民币.
三、实验结果分析与讨论(对实验结果进行具体分析,并对实验中出现的问题或错误原因分析,以及改进的办法与建议通过对的了解,我发现它确实有很多方便之处,它集抽象性、封装性、Java继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率对于我们这个专业来说学好语言是很重要的,所以在实验的过程中我都尽力理解Java编程思想、掌握基本技巧,尽量学到最多的知识java教师评阅意见实验预习分)成绩
(1)(30□预习认真、熟练掌握方法与步骤(30〜28)□有预习、基本掌握方法与步骤(27□有预习、但未能掌握方法与步骤〜22)(21〜18)□没有预习,不能完成实验操作过程分)成绩(17〜0)
(2)(40口遵规守纪、操作熟练、团结协作(40〜37)口遵规守纪、操作正确、有协作
(3629)〜口遵规守纪、操作基本正确、无协作(28〜24)(17〜0)口不能遵规守纪、操作不正确、无协作结果分析分)成绩
(3)(30□结果详实、结论清晰、讨论合理(30〜28)口结果正确、没有分析讨论(21〜18)其它意见______________________________________________________________教师签名:年月日。