面向对象原理与Java实践课程实验报告2Word文件下载.docx
- 文档编号:19886279
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:11
- 大小:17.64KB
面向对象原理与Java实践课程实验报告2Word文件下载.docx
《面向对象原理与Java实践课程实验报告2Word文件下载.docx》由会员分享,可在线阅读,更多相关《面向对象原理与Java实践课程实验报告2Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
经理(Manager)每月获得一份固定的工资;
销售人员(Salesman)在基本工资的基础上每月还有销售提成;
一般工人(Worker)则按他每月工作的天数计算工资。
(提示:
设计一个抽象类――雇员(Employee)描述雇员的共同特性,例如姓名(name)等。
这个类还应提供一个计算工资的抽象方法computeSalary(),使得可以通过为个类计算所有雇员的工资。
设计经理(Manager)类、销售人员(Salesman)类、一般工人(Worker)类,再设计一个演示用的类。
)
2、在前面的基础上对雇员工资计算程序进行扩充,即将一般雇员再细分为计时雇员(DailyWorker)和计件雇员(PieceWorker)两类,计时雇员按天计算工资额,而计件雇员按其生产的产品件数计算工资额。
设计这两个类,与前面的程序结合在一起,修改一下演示程序,演示这些类的用法。
3、在程序包packageOne中编写至少含一个方法的公有接口InterfaceOne。
在程序包packageTwo中定义公有类SuperClass,该类含有一个受保护的内部类InnerClass,这个类实现接口InterfaceOne。
在程序包packageThree中定义公有类SubClass继承SuperClass,类SubClass定义一个返回类型为InterfaceOne的方法返回内部类InnerClass的对象实例。
请正确使用程序包组织以上类和接口,编译并运行,并观察编译器生成的字节码文件的命名方式。
四、设计思路:
1、对于第一个程序,主要是先建立一个抽象类,,然后再建立其他雇员类继承这个抽象类。
2、对于第二个程序,主要是新建两个类,分别继承前面的一般工人类,对一般工人类进行扩充。
3、对于第三个程序,关键是对接口与内部类的理解。
五、程序源代码:
/////////////////////////////////////////////////////////////////////////////////
/////////////////////公司雇员工资支付程序
////////////////////////////////////////////////////////////////////////////////////////////////////////////
packagebao;
importjava.util.Scanner;
abstractclassEmployee
{
publicintSalary;
//职工为经理时为固定工资
//为销售人员时为基本工资
//一般工人时为一天的基本工资
publicStringName;
publicintJnum;
publicEmployee()
{
}
publicEmployee(ints,Stringn,intj)
Salary=s;
Name=n;
Jnum=j;
publicabstractvoidcomputeSalary();
}
classManagerextendsEmployee
publicManager(ints,Stringn,intj)
super(s,n,j);
;
publicvoidcomputeSalary()
System.out.println("
姓名:
"
+Name);
工号:
+Jnum);
职位:
+"
经理"
);
月总工资:
+Salary);
classSalesmanextendsEmployee
privateintCommission;
//销售人员提成
publicSalesman(ints,Stringn,intj,intc)
Commission=c;
销售人员"
基本工资:
月销售提成:
+Commission);
+(Salary+Commission));
classWorkerextendsEmployee
privateintDays;
//一般工人每月工作的天数
publicWorker()
publicWorker(ints,Stringn,intj,intd)
Days=d;
一般计时工人"
日基本工资:
月工作天数:
+Days);
+(Salary*Days));
publicclassEmployee_Salary
publicstaticvoidmain(String[]args)
Scannerin=newScanner(System.in);
请分别输入该公司经理的姓名、工号,固定工资:
"
Stringname=in.next();
intjnum=in.nextInt();
intsalary=in.nextInt();
Managerman=newManager(salary,name,jnum);
请分别输入该公司销售人员的姓名、工号,基本工资,销售提成:
name=in.next();
jnum=in.nextInt();
salary=in.nextInt();
intcommission=in.nextInt();
Salesmansman=newSalesman(salary,name,jnum,commission);
请分别输入该公司一般工人的姓名、工号,日基本工资,工作天数:
intdays=in.nextInt();
Workerworker=newWorker(salary,name,jnum,days);
puteSalary();
System.out.println();
}
运行结果:
科比2208800
詹姆斯20230002000
韦德20115029
科比
220
经理
8800
詹姆斯
202
销售人员
3000
2000
5000
韦德
201
一般计时工人
150
29
4350
/////////////////////雇员工资计算程序的扩充
importbao.Worker;
importjava.util.*;
classDailyWorkerextendsWorker
publicDailyWorker(ints,Stringn,intj,intd)
super(s,n,j,d);
classPieceWorkerextendsWorker
privateintpiece;
publicPieceWorker(ints,Stringn,intj,intd,intp)
piece=p;
一般工人"
单件产品工资:
月生产件数:
+piece);
+(Salary*piece));
publicclassWorker_Demo
publicstaticvoidmain(String[]args)
请分别输入该公司计时工人的姓名、工号,日基本工资,工作天数:
Stringname1=in.next();
intjnum1=in.nextInt();
intsalary1=in.nextInt();
intdaily=in.nextInt();
请分别输入该公司计件工人的姓名、工号,单件产品工资,生产件数:
Stringname2=in.next();
intjnum2=in.nextInt();
intsalary2=in.nextInt();
intpiece=in.nextInt();
Workerworker=newWorker();
worker=newDailyWorker(salary1,name1,jnum1,daily);
worker=newPieceWorker(salary2,name2,jnum2,0,piece);
杜兰特19810030
安东尼奥12540100
杜兰特
198
100
30
安东尼奥
125
一般工人
40
4000
/////////////////////程序包类与接口的运用
///////第一个包
packagepackageone;
publicinterfaceInterfaceOne
voidoutput();
///////第二个包
packagepackagetwo;
importpackageone.InterfaceOne;
publicclassSuperClass
protectedclassInnerClassimplementsInterfaceOne
publicvoidoutput()
{
System.out.println("
InnerClass_output"
publicInterfaceOneback()
returnnewInnerClass();
///////第三个包
packagepackagethree;
importpackagetwo.SuperClass;
publicclassSubClassextendsSuperClass
publicInterfaceOneoutput()
SubClasssub=newSubClass();
returnsub.back();
InterfaceOneb=sub.back();
b.output();
运行结果:
InnerClass_output
六、实验过程中遇到的问题及解决手段:
第三个程序怎样实现编译器生成字节码文件,于是就在内部类中编写了一个输出方法,用来观察。
七、本次实验的体会(结论):
通过这次实验,对于类的运用、接口的实现有了更深一步的了解。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 原理 Java 实践 课程 实验 报告