预览加载中,请您耐心等待几秒...
在线预览结束,喜欢就下载吧,查找使用更方便
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
计算机科学与技术学院实验报告(电子版)
课程:Java程序设计实验
实验名称面向对象编程(二)指导老师姓名学号班级实验地点实验日期成绩一、实验内容:
1.多态在工资系统中的应用。给出一个根据雇员类型利用多态性完成工资单计算的程序。定义一个类Employee作为超类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。对所有雇员类型都使用earnings()方法完成其工资单的计算,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Employee派出生的。所以在超类中声明earnings()方法,该方法没有实质性工作,而是在每个子类都提供恰当的earnings()方法的重写。为了计算雇员的工资,程序仅使用雇员对象的一个超类引导并调用earnings()方法。
2.接口的编写
⑴定义一个接口Shape用于描述图形,具有计算其面积和周长的两个抽象方法GetArea()和GetLength()。定义一个最终类Circle实现接口Shape,增加了一个描述半径的属性radius及带参的构造函数用于该类对象的初始化操作,同时实现了Shape接口中的两个抽象方法来计算圆的面积和周长。定义一个最终类Rectangle实现接口Shape,增加了两个属性length和width用于描述矩形的长和宽及带参的构造函数用于完成对该类对象的初始化,同时实现了Shape接口中的两个抽象方法来计算矩形的面积和周长。
定义主类分别创建Circle和Rectangle类对象,打印面积和周长。二、实验目的:
1.理解类的继承和多态,熟练掌握OOP方式进行程序设计的方法。
2.掌握接口的编写及使用。
3.理解抽象类与最终类。
三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况):
软件环境:Uedit+MSDOS四、程序清单与测试数据:
试验一:
packagecn.hlbrc.ryh;
//定义超类Employee
abstractclassEmployee{
publicabstractdoubleearnings();
}
//定义子类Boss
classBossextendsEmployee{
privatedoublemoney;
privateintweek;
publicBoss(){
};
publicdoublegetMoney(){
returnmoney;
}
publicvoidsetMoney(doublemoney){
this.money=money;
}
publicintgetWeek(){
returnweek;
}
publicvoidsetWeek(intweek){
this.week=week;
}
publicdoubleearnings(){
returnweek*money;
}
}
//定义子类PieceWorker
classPieceWorkerextendsEmployee{
publicdoublegetMoney(){
returnmoney;
}
publicvoidsetMoney(doublemoney){
this.money=money;
}
publicintgetNum(){
returnnum;
}
publicvoidsetNum(intnum){
this.num=num;
}
privatedoublemoney;
privateintnum;
PieceWorker(){
};
publicdoubleearnings(){
returnnum*money;
}
}
//定义子类HourlyWorker
classHourlyWorkerextendsEmployee{
privateinttime;
privatedoublemoney;
HourlyWorker(){
}
publicintgetTime(){
returntime;
}
publicvoidsetTime(inttime){
this.time=time;
}
publicdoublegetMoney(){
returnmoney;
}
publicvoidsetMoney(doublemoney){
this.money=money;
}
publicdoubleearnings(){
returnmoney*time;
}
}
publicclassMoney{
pu