java实验报告Word文档格式.docx
- 文档编号:20580355
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:14
- 大小:107.64KB
java实验报告Word文档格式.docx
《java实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《java实验报告Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
publicvoidchinaGongfu()
AmericanPeople类
publicvoidamericanBoxing()BeijingPeople类
publicvoidbeijingOpera()
People类
变量方法
heightpublicvoidspeakHello()weightpublicvoidaverageHeight()publicvoidaverageWeight()
模板2:
要求有一个abstract类,类名为Employee。
Employee的子类有YearWorker、MonthWorker、WeekWorker。
YearWorker对象按年领取薪水,MonthWorker按月领取薪水、WeekWorker按周领取薪水。
Employee类有一个abstract方法:
publicabstractearnings();
子类必须重写父类的earnings()方法,给出各自领取报酬的具体方式。
有一个Company类,该类用Employee数组作为成员,Employee数组的单元可以是YearWorker对象的上转型对象、MonthWorker对象的上转型对象或WeekWorker对象的上转
型对象。
程序能输出Company对象一年需要支付的薪水总额。
模板3:
要求有一个ComputeTotalSales接口,该接口中有一个方法:
publicdoubletotalSalesByYear()有三个实现该接口的类:
Television、Computer和Mobile。
这三个类通过实现接口computeTotalSales,给出自己的年销售额。
有一个Shop类,该类用computeTotalSales数组作为成员,computeTotalSales数组的单元可以存放Television对象的引用、Computer对象的引用或Mobile对象的引用。
程序能输出Shop对象的年销售额。
模板4:
要求声明定义两个Exception的异常子类:
NoLowerLetter类和NoDigit类。
再声明一个People类,该类中的voidprintLetter(charc)方法抛出NoLowerLetter异常类对象,voidprintDigit(charc)方法抛出NoDigit异常类对象。
三实验内容与步骤
按模板要求,将【代码】替换为Java程序代码。
详细代码:
(1)
classPeople
{
protecteddoubleweight,height;
publicvoidspeakHello()
System.out.println("
yayawawa"
);
}
publicvoidaverageHeight()
height=173;
averageheight:
"
+height);
}
publicvoidaverageWeight(){
weight=70;
averageweight:
+weight);
classChinaPeopleextendsPeople{
publicvoidspeakHello(){
你好,你吃了吗"
}//重写publicvoidspeakHello()方法,要求输出类似“你好,吃了吗”这样的//汉语信息。
publicvoidaverageHeight(){
height=168.78;
中国人的平均身高:
+height+"
厘米"
}//重写publicvoidaverageHeight()方法,要求输出类似//“中国人的平均身高:
168.78厘米”这样的汉语信息。
publicvoidaverageWeight(){
weight=65;
中国人的平均体重:
+weight+"
公斤"
}//重写publicvoidaverageWeight()方法,
//要求输出类似“中国人的平均体重:
65公斤”这样的汉语信息。
publicvoidchinaGongfu(){
坐如钟,站如松,睡如弓"
//输出中国武术的信息,例如:
坐如钟,站如松,
睡如弓"
等。
classAmericanPeopleextendsPeople
Howdoyoudo"
}//重写publicvoidspeakHello()方法,要求输出类似
//“Howdoyoudo”这样的英语信息。
height=172;
}//重写publicvoidaverageHeight()方法。
publicvoidaverageWeight()
weight=71;
}//重写publicvoidaverageWeight()方法。
publicvoidamericanBoxing()
直拳、钩拳"
//输出拳击的信息,例如,“直拳”、“钩拳”等。
classBeijingPeopleextendsChinaPeople{
publicvoidspeakHello()
您好"
}//重写publicvoidspeakHello()方法,要求输出类似“您好”这样的汉语信息。
publicvoidaverageHeight()
}//重写publicvoidaverageHeight()方法。
weight=60;
花旦,小生,老生,丑旦"
//输出京剧的信息。
publicclassExample
publicstaticvoidmain(Stringargs[]){
ChinaPeoplechinaPeople=newChinaPeople();
AmericanPeopleamericanPeople=newAmericanPeople();
BeijingPeoplebeijingPeople=newBeijingPeople();
chinaPeople.speakHello();
americanPeople.speakHello();
beijingPeople.speakHello();
chinaPeople.averageHeight();
americanPeople.averageHeight();
beijingPeople.averageHeight();
chinaPeople.averageWeight();
americanPeople.averageWeight();
beijingPeople.averageWeight();
chinaPeople.chinaGongfu();
americanPeople.americanBoxing();
beijingPeople.beijingOpera();
beijingPeople.chinaGongfu();
(2)HardWork.java
abstractclassEmployee{
publicabstractdoubleearnings();
classYearWorkerextendsEmployee{
publicdoubleearnings(){return100000;
classMonthWorkerextendsEmployee{
publicdoubleearnings(){return12*5000;
classWeekWorkerextendsEmployee{
publicdoubleearnings(){return48*1000;
classCompany
Employee[]employee;
doublesalaries=0;
Company(Employee[]employee){
this.employee=employee;
publicdoublesalariesPay(){
salaries=0;
for(inti=0;
i<
employee.length;
i++){salaries=salaries+employee[i].earnings();
returnsalaries;
publicclassHardWork
publicstaticvoidmain(Stringargs[])
Employee[]employee=newEmployee[20];
i++){
if(i%3==0)
employee[i]=newWeekWorker();
elseif(i%3==1)
employee[i]=newMonthWorker();
elseif(i%3==2)
employee[i]=newYearWorker();
Companycompany=newCompany(employee);
System.out.println("
公司年工资总额:
+company.salariesPay());
(3)interfaceComputeTotalSales
publicdoubletotalSalesByYear();
classTelevisionimplementsComputeTotalSales
publicdoubletotalSalesByYear()
return50.0;
}//实现totalSalesByYear()方法。
classComputerimplementsComputeTotalSales
return30.0;
}//实现totalSalesByYear()方法。
classMobileimplementsComputeTotalSales
publicdoubletotalSalesByYear(){return20.0;
classShop
ComputeTotalSales[]goods;
doubletotalSales=0;
Shop(ComputeTotalSales[]goods)
this.goods=goods;
publicdoublegiveTotalSales(){
totalSales=0;
goods.length;
i++){totalSales=totalSales+goods[i].totalSalesByYear();
}//计算totalSales。
returntotalSales;
publicclassHappySale
ComputeTotalSales[]goods=newComputeTotalSales[50];
goods[i]=newTelevision();
elseif(i%3==1)
goods[i]=newComputer();
elseif(i%3==2)
goods[i]=newMobile();
Shopshop=newShop(goods);
商店年销售额:
+shop.giveTotalSales());
(4)
classNoLowerLetterextendsException//类声明,声明一个Exception的子类NoLowerLetter
publicvoidprint()
System.out.printf("
%c"
'
#'
classNoDigitextendsException//类声明,声明一个Exception的子类NoDigit{
*'
voidprintLetter(charc)throwsNoLowerLetter
if(c<
'
a'
||c>
z'
)
NoLowerLetternoLowerLetter=newNoLowerLetter();
//创建NoLowerLetter类型对象thrownoLowerLetter;
//抛出noLowerLetter
else
System.out.print(c);
voidprintDigit(charc)throwsNoDigit
1'
9'
NoDigitnoDigit=newNoDigit();
//创建NoDigit()类型对象thrownoDigit;
//抛出noDigit
publicclassExceptionExample
publicstaticvoidmain(Stringargs[])
Peoplepeople=newPeople();
128;
try
people.printLetter((char)i);
catch(NoLowerLettere){
e.print();
people.printDigit((char)i);
catch(NoDigite)
e.print();
四调试报告
思考练习
1(就模板1的程序而言,People类中的
publicvoidspeakHello()publicvoidaverageHeight()publicvoidaverageWeight()三个方法的方法体中的语句是否可以省略。
答:
不能,因为重写,方法体必须不一样。
2(模板2中,子类YearWorker如果不重写earnings方法,程序编译时提示怎样的错误,
3(模板3中,类Mobile如果不实现totalSalesByYear()方法,程序编译时提示怎样的错
误,五实验心得
此次完成了类与接口的实验,
1巩固有关的概念:
对象的上转型对象的实体是子类负责创建的,但上转型对象会失去原对象的一些属性和功能。
上转型对象不能操作子类新增的成员变量;
不能使用子类新增的方法。
上转型对象可以作子类继承或隐藏的成员变量,也可以使用子类继承的或重写的方法。
上转型对象操作子类继承或重写的方法,其作用等价于子类对象去调用这些方法。
因此,如果子类重写了父类的某个方法,则当对象的上转型调用这个方法时一定是调用了这个重写的方
法。
异常常出现在方法调用过程中,即在方法调用过程中抛出异常对象,导致程序运行出现异常,
并等待处理。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实验 报告