天津理工大学Java实验二实验报告Word文档格式.docx
- 文档编号:21403325
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:14
- 大小:245.43KB
天津理工大学Java实验二实验报告Word文档格式.docx
《天津理工大学Java实验二实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《天津理工大学Java实验二实验报告Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
实验内容(应包括实验题目、实验要求、实验任务等)
序号
No.
姓名
name
地址
address
电话
phone
职务
title
社会安全号
socialSN
基本工资
payRate
1
Sam
123MainLine
555-0469
manager
123-45-6789
$2423.07
2
Peter
456OffLine
555-0101
employee
987-65-4321
$1246.15
3
Mary
789OffRocker
555-0690
010-20-3040
$1169.23
4
Cliff
678FifthAve.
555-0000
hourly
958-47-3625
$10.55
5
Al
987SudsAve.
555-8374
volunteer
无
$0.00
6
Gus
321OffLine
555-7282
其中,Sam是经理,每月除得到基本工资外,还获得$500.00的红利;
Peter和Mary是合同工,每月拿基本工资;
Cliff是小时工,他的每月的工资额=基本工资×
工作小时数,他的工作小时数为每月40小时;
而Al和Gus是义工,不拿工资。
图1反应了上述情况。
StaffMember是抽象类,有一个抽象方法pay。
Manager类中的bonus代表红利;
awardBonus方法用来增加红利。
Hourly类中的hoursWorked代表一个月工作的小时数;
addHours方法用来增加小时数。
Staff类中的main方法用来驱动整个程序的运行;
payDetail方法用来显示所有人的详细信息;
构造方法用来初始化上述6个人,并将他们存储在staffMember类型的数组中。
每个类都有toString方法,用来返回该类的详细信息。
要求你按照此图的继承关系定义每一个类,并最终显示所有人的详细信息。
显示结果如下:
姓名:
地址:
电话:
社会安全号:
工资:
$2923.07
-----------------------------------------
789OffRocker
工作小时数:
40
$422.00
多谢!
实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)
一、实验步骤与算法描述:
根据实验需求,首先定义一个员工基类,描述姓名、地址、电话、职务、社会安全号、基本工资属性;
定义一个工资计算方法。
抽象类StaffMember定义过程如下,应包含以下的内容(具体方法的实现见附录中的源代码):
publicabstractclassStaffMember
{
protectedintNo;
//序号
protectedStringname;
//姓名
protectedStringaddress;
//地址
protectedStringphone;
//电话
protectedStringtitle;
//职务
protectedStringsocialSN;
//社会安全号
protecteddoublepayRate;
//基本工资
publicStaffMember(intNo,Stringname,Stringaddress,Stringphone,StringsocialSN,doublepayRate)
publicintgetNo()
publicvoidsetNo(intno)
publicStringgetName()
publicvoidsetName(Stringname)
publicStringgetAddress()
publicvoidsetAddress(Stringaddress)
publicStringgetPhone()
publicvoidsetPhone(Stringphone)
publicStringgetTitle()
publicvoidsetTitle(Stringtitle)
publicStringgetSocialSN()
publicvoidsetSocialSN(StringsocialSN)
publicdoublegetPayRate()
publicvoidsetPayRate(doublepayRate)
//支付金额
publicabstractdoublepay();
//toString方法
publicStringtoString()
}
然后分别让经理、合同工、小时工、义工继承员工基类,每个人重写自己的工资计算方法。
最后按照要求输出即可,具体实例化过程见附录源代码。
二、实验结果:
三、实验分析总结
本次实验中,主要练习编译了跟抽象类有关的相关程序。
其中主要包括已知抽象方法编写抽象类、抽象类抽象方法实现多态性、通过定义多个子类来实现对类的继承。
通过本次实验,基本掌握了实现多态的方法,也练习了抽象类和抽象方法的定义和使用。
以后也还需要多加练习,能更加熟悉。
同时,编写程序中遇到问题再所难免,应耐心探究其中的原因,从出现问题的地方起,并联系前后程序,仔细推敲,逐个排查。
直到最终搞清为止。
附录(源程序清单)
packageex2;
publicStaffMember(intNo,Stringname,Stringaddress,Stringphone,StringsocialSN,doublepayRate)
{
this.No=No;
this.name=name;
this.address=address;
this.phone=phone;
this.socialSN=socialSN;
this.payRate=payRate;
publicintgetNo()
{
returnNo;
}
No=no;
returnname;
this.name=name;
returnaddress;
this.address=address;
returnphone;
this.phone=phone;
returntitle;
this.title=title;
returnsocialSN;
this.socialSN=socialSN;
returnpayRate;
this.payRate=payRate;
returnthis.No+"
"
+this.name+"
+this.address+"
+this.phone+"
+this.socialSN+"
$"
+this.pay();
publicstaticvoidmain(String[]args)
Staffs=newStaff();
s.payDetail();
classManagerextendsStaffMember
publicManager(intNo,Stringname,Stringaddress,Stringphone,StringsocialSN,doublepayRate,doublebonus)
super(No,name,address,phone,socialSN,payRate);
this.bonus=bonus;
privatedoublebonus;
publicdoublegetBonus()
returnbonus;
publicvoidsetBonus(doublebonus)
this.bonus=bonus;
@Override
publicdoublepay()
returnthis.getPayRate()+this.awardBonus();
publicdoubleawardBonus()
returnthis.bonus;
classEmployeeextendsStaffMember
publicEmployee(intNo,Stringname,Stringaddress,Stringphone,StringsocialSN,doublepayRate)
publicdoublepay()
returnthis.getPayRate();
classHourlyextendsStaffMember
publicHourly(intNo,Stringname,Stringaddress,Stringphone,StringsocialSN,doublepayRate,inthoursWorked)
this.hoursWorked=hoursWorked;
privateinthoursWorked;
publicintgetHoursWorked()
returnhoursWorked;
publicvoidsetHoursWorked(inthoursWorked)
this.hoursWorked=hoursWorked;
returnthis.getPayRate()*this.getHoursWorked();
publicvoidaddHours(inthours)
this.setHoursWorked(this.getHoursWorked()+hours);
+"
工作时长:
"
+this.hoursWorked+"
$"
classVolunteerextendsStaffMember
publicVolunteer(intNo,Stringname,Stringaddress,Stringphone,StringsocialSN,doublepayRate)
super(No,name,address,phone,socialSN,payRate);
return0.00;
+this.socialSN+this.payRate;
classStaff
privateStaffMember[]members=newStaffMember[6];
publicStaff()
StaffMembermanager=newManager(1,"
姓名:
Sam"
"
地址:
123MainLine"
"
电话:
555-0469"
社会安全号:
123-45-6789"
2923.07,500.00);
StaffMemberemployee1=newEmployee(2,"
Peter"
456OffLine"
555-0101"
987-65-4321"
1246.15);
StaffMemberemployee2=newEmployee(3,"
Mary"
789OffRocker"
"
555-0690"
010-20-3040"
1169.23);
StaffMemberhourly=newHourly(4,"
Cliff"
678FifthAve"
555-0000"
958-47-3625"
10.55,40);
StaffMembervolunteer1=newVolunteer(5,"
Al"
987SudsAve"
555-8374"
多谢!
0.00);
StaffMembervolunteer2=newVolunteer(6,"
Gus"
321OffLine"
555-7282"
members[0]=manager;
members[1]=employee1;
members[2]=employee2;
members[3]=hourly;
members[4]=volunteer1;
members[5]=volunteer2;
publicvoidpayDetail()
for(inti=0;
i<
members.length;
i++)
{
System.out.println(members[i]);
System.out.println("
---------------------------------------------------"
);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 天津 理工大学 Java 实验 报告