Java语言程序设计A实验2继承与多态Word格式文档下载.docx

上传人:b****6 文档编号:15960510 上传时间:2022-11-17 格式:DOCX 页数:12 大小:104.43KB
下载 相关 举报
Java语言程序设计A实验2继承与多态Word格式文档下载.docx_第1页
第1页 / 共12页
Java语言程序设计A实验2继承与多态Word格式文档下载.docx_第2页
第2页 / 共12页
Java语言程序设计A实验2继承与多态Word格式文档下载.docx_第3页
第3页 / 共12页
Java语言程序设计A实验2继承与多态Word格式文档下载.docx_第4页
第4页 / 共12页
Java语言程序设计A实验2继承与多态Word格式文档下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

Java语言程序设计A实验2继承与多态Word格式文档下载.docx

《Java语言程序设计A实验2继承与多态Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计A实验2继承与多态Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。

Java语言程序设计A实验2继承与多态Word格式文档下载.docx

二.实验基本原理与方法

1.继承的概念、思想、层次、定义。

2.抽象类与抽象方法的概念、定义,抽象方法的最终实现。

3.方法覆盖的概念、实现。

4.多态的概念、优势、应用。

5.动态方法调度的概念、实现。

三.主要仪器设备及耗材

1.PC及其兼容机。

2.计算机操作系统。

3.程序编辑器EditPlus/Eclipse。

4.Java开发工具JDK。

四.实验内容及要求

实验2-1:

类Person定义了姓名name、出生年份birthYear,其子类CollegeGraduate定义了平均成绩gpa、毕业年份graduateYear。

设计完整的继承层次结构UML类图,并转换为Java代码。

编写测试类PersonTest,输出毕业生的姓名、年龄、毕业年份、平均成绩,一种可能的运行结果示例如下:

实验2-2(选做):

某小型企业销售部门共4名员工:

销售经理1名、专职销售员2名、兼职促销员1名。

员工工资的计算方法:

销售经理每月底薪3000元,销售提成为该部门当月销售总额的1%;

专职销售员每月底薪2000元,销售提成为当月销售额的5%;

兼职促销员时薪50元。

请从键盘输入每位员工的相关信息,计算工资。

五.实验方案及技术路线(设计思路、UML类图、算法、注意事项)

实验2-1的继承层次结构UML类图如下:

对于实验2-2,在父类中首先要定义抽象方法用于计算工资,再写两个子类,分别计算经理和销售员的工资,计算销售员的工资时需要区分全职和兼职,所以需要重载getWage()方法,而经理的工资需要统计部门的总销售额,所以测试类中最后创建Manager的实例。

简略的UML类图如下:

 

第二部分:

实验过程记录(可加页)(代码、运行结果、实验中出现的问题及解决过程)

●Person类代码如下:

publicclassPerson

{

privateStringname;

privateintbirthYear;

publicPerson(Stringname,intbirthYear)

{

this.name=name;

this.birthYear=birthYear;

}

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname)

{

publicintgetBirthYear()

returnbirthYear;

publicvoidsetBirthYear(intbirthYear)

●CollegeGraduate类代码如下:

publicclassCollegeGraduateextendsPerson

privatedoublegpa;

privateintgraduateYear;

publicCollegeGraduate(Stringname,intbirthYear,doublegpa,intgraduateYear)

super(name,birthYear);

this.gpa=gpa;

this.graduateYear=graduateYear;

publicdoublegetGpa()

{returngpa;

publicvoidsetGpa(doublegpa)

{this.gpa=gpa;

publicintgetGraduateYear()

{returngraduateYear;

publicvoidsetGraduateYear(intgraduateYear)

{this.graduateYear=graduateYear;

}}

●PersonTest类代码如下:

publicclassPersonTest

publicstaticvoidmain(String[]args)

CollegeGraduatestudent=newCollegeGraduate("

姓名"

出生年份,3.88,2016);

System.out.println("

学生:

"

+student.getName()+"

\n出生年份为:

+student.getBirthYear()+"

\n毕业年份:

+student.getGraduateYear()+"

\n平均绩点为:

+student.getGpa());

PersonTest类输出结果如下:

省略

实验2-2:

●SaleEmployee类代码如下:

publicabstractclassSaleEmployee{

privateStringemployeeNumber;

privateStringemployeeName;

privateStringstatus;

privateStringpost;

publicSaleEmployee(StringemployeeNumber,StringemployeeName,

Stringstatus,Stringpost)

this.employeeNumber=employeeNumber;

this.employeeName=employeeName;

this.status=status;

this.post=post;

publicStringgetEmployeeNumber()

returnemployeeNumber;

publicStringgetEmployeeName()

returnemployeeName;

publicStringgetStatus()

returnstatus;

publicStringgetPost()

returnpost;

publicabstractdoublegetWage();

publicabstractdoublegetWage(inttempHour);

●Salesman类的代码如下:

publicclassSalesmanextendsSaleEmployee{

privatedoublesales;

publicSalesman(StringemployeeNumber,StringemployeeName,Stringstatus,Stringpost,

doublesales)

super(employeeNumber,employeeName,status,post);

this.sales=sales;

publicdoublegetSales()

returnsales;

@Override

publicdoublegetWage()

return2000+sales*0.05;

publicdoublegetWage(inthour)

doublewage=0;

if(getStatus().equals("

P"

)||getStatus().equals("

p"

))

wage=50*hour;

returnwage;

publicStringtoString()

{Stringshow;

if(getStatus().equals("

show="

兼职销售员编号:

+getEmployeeNumber()+"

\n"

+"

兼职销售员姓名:

+getEmployeeName()+"

销售额"

+sales+"

+"

时薪:

50元"

;

else

show="

全职销售员编号:

全职销售员姓名:

底薪:

2000元"

returnshow;

●Manager类的代码如下:

publicclassManagerextendsSaleEmployee{

privatedoubletotalSales;

publicManager(StringemployeeNumber,StringemployeeName,Stringstatus,Stringpost,

doubletotalSales)

this.totalSales=totalSales;

return3000+totalSales*0.01;

publicStringtoString(){

return"

销售经理编号:

销售经理姓名:

部门销售总额:

+totalSales+"

3000元"

publicdoublegetWage(inttempHour)

//此类中不使用该方法

return0;

●EmployeeTest类的代码如下:

importjava.util.Scanner;

publicclassEmployeeTest{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

SaleEmployee[]employeeList=newSaleEmployee[4];

for(inti=0;

i<

3;

i++)

System.out.println("

请输入1名销售员的编号"

);

StringnumberTemp=sc.next();

System.out.pri

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1