Java实验报告 继承多态接口和异常处理.docx

上传人:b****5 文档编号:14593345 上传时间:2023-06-24 格式:DOCX 页数:15 大小:83.49KB
下载 相关 举报
Java实验报告 继承多态接口和异常处理.docx_第1页
第1页 / 共15页
Java实验报告 继承多态接口和异常处理.docx_第2页
第2页 / 共15页
Java实验报告 继承多态接口和异常处理.docx_第3页
第3页 / 共15页
Java实验报告 继承多态接口和异常处理.docx_第4页
第4页 / 共15页
Java实验报告 继承多态接口和异常处理.docx_第5页
第5页 / 共15页
Java实验报告 继承多态接口和异常处理.docx_第6页
第6页 / 共15页
Java实验报告 继承多态接口和异常处理.docx_第7页
第7页 / 共15页
Java实验报告 继承多态接口和异常处理.docx_第8页
第8页 / 共15页
Java实验报告 继承多态接口和异常处理.docx_第9页
第9页 / 共15页
Java实验报告 继承多态接口和异常处理.docx_第10页
第10页 / 共15页
Java实验报告 继承多态接口和异常处理.docx_第11页
第11页 / 共15页
Java实验报告 继承多态接口和异常处理.docx_第12页
第12页 / 共15页
Java实验报告 继承多态接口和异常处理.docx_第13页
第13页 / 共15页
Java实验报告 继承多态接口和异常处理.docx_第14页
第14页 / 共15页
Java实验报告 继承多态接口和异常处理.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Java实验报告 继承多态接口和异常处理.docx

《Java实验报告 继承多态接口和异常处理.docx》由会员分享,可在线阅读,更多相关《Java实验报告 继承多态接口和异常处理.docx(15页珍藏版)》请在冰点文库上搜索。

Java实验报告 继承多态接口和异常处理.docx

Java实验报告继承多态接口和异常处理

实验5继承、多态、接口和异常处理

一、实验目的

1、掌握Java的类和对象的声明和使用方法;

2、掌握Java的类的继承和实现方法;

3、掌握多态性在类的继承中的运用;

4、掌握接口的定义与使用;

5、掌握基本异常的处理机制;

6、熟悉try语句与catch语句的搭配使用;

7、了解有异常处理与没有异常处理的差别;

8、多重catch语句的使用;

9、使用Throws声明异常和Throw抛出异常。

二、实验环境

1、PC微机;

2、DOS操作系统或Windows操作系统;

3、Javasdk程序开发环境、eclipse集成环境。

三、实验内容

1.设计三个类,分别是学生类Student,本科生类UnderGraduate,研究生类Postjgraduate,其中Student类是一个抽象类,它包含学生的基本信息如姓名、所学课程、课程成绩等,而Undergraduate类和Postgraduate类都是Student类的子类,这两个类计算课程成绩等级的方法有所不同,如下表所示。

假设某班级里既有研究生又有本科生,编写程序统计出全班学生的成绩等级并打印出来。

本科生标准

研究生标准

80~100优秀

90~100优秀

70~80良好

80~90良好

60~70一般

70~80一般

50~60及格

60~70及格

50以下不及格

60以下不及格

2.设计实现一个Soundable接口,该接口由三个类Radio、Walkman和Mobilephone具体实现,并设计一个应用程序类来使用这些类。

3.要求设计一个GUI图形窗口程序,该程序让用户输入一个星期中的任意一天的数字1-7,然后输出该数字所对应的是星期几。

四、实验步骤

●实验内容一

1.建立packageexperiment5_1,其最终目录结构如下:

2.建立Student类:

packageexperiment5_1;

publicabstractclassStudent{

finalstaticintCourseNo=3;

Stringname;

Stringtype;

int[]courses;

StringcourseGrade;

publicStudent(Stringname){

this.name=name;

courses=newint[CourseNo];

courseGrade="";

}

publicabstractvoidcalculateGrade();

publicStringgetName(){

returnname;

}

publicStringgetType(){

returntype;

}

publicStringgetCourseGrade(){

returncourseGrade;

}

publicintgetCourseScore(intcourseNumber){

returncourses[courseNumber];

}

publicvoidsetName(Stringname){

this.name=name;

}

publicvoidsetType(Stringtype){

this.type=type;

}

publicvoidsetCourseScore(intcourseNumber,intcourseScore){

//按课程索引号设置课程成绩

this.courses[courseNumber]=courseScore;

}

}

3.建立外部类

(1)研究生类Postjgraduate

packageexperiment5_1;

publicclasspostgraduateextendsStudent{

publicpostgraduate(Stringname){

super(name);

type="研究生";

}

publicvoidcalculateGrade(){

//TODOAuto-generatedmethodstub

inttotal=0;

doubleaverage=0;

for(inti=0;i

total+=courses[i];

};

average=total/CourseNo;

if(average>=90&&average<100)courseGrade="优秀";

elseif(average>=80&&average<90)courseGrade="良好";

elseif(average>=70&&average<80)courseGrade="一般";

elseif(average>=60&&average<70)courseGrade="及格";

elsecourseGrade="不及格";

}

}

(2)本科生类UnderGraduate

packageexperiment5_1;

publicclassundergraduateextendsStudent{

publicundergraduate(Stringname){

super(name);

type="本科生";

}

publicvoidcalculateGrade(){

inttotal=0;

doubleaverage=0;

for(inti=0;i

total+=getCourseScore(i);

};

average=total/CourseNo;

if(average>=80&&average<100)courseGrade="优秀";

elseif(average>=70&&average<80)courseGrade="良好";

elseif(average>=60&&average<70)courseGrade="一般";

elseif(average>=50&&average<60)courseGrade="及格";

elsecourseGrade="不及格";

}

}

4.编写代码测试函数

packageexperiment5_1;

publicclasspolymorphism{

publicstaticvoidmain(String[]args){

Student[]students=newStudent[5];

students[0]=newundergraduate("陈建平");

students[1]=newundergraduate("鲁向东");

students[2]=newpostgraduate("匡晓华");

students[3]=newundergraduate("周丽娜");

students[4]=newpostgraduate("梁欣欣");

for(inti=0;i<5;i++){

students[i].setCourseScore(0,87);

students[i].setCourseScore(1,90);

students[i].setCourseScore(2,78);

}

for(inti=0;i<5;i++){

students[i].calculateGrade();

}

System.out.println("姓名"+"类型"+"成绩");

System.out.println("-----------------------");

for(inti=0;i<5;i++){

System.out.println(students[i].getName()+""+

students[i].getType()+""+

students[i].getCourseGrade());

}

}

}

●实验内容二

1.建立packageexperiment5_2,其最终目录结构如下:

2.写接口Soundable代码:

packageexperiment5_2;

publicinterfaceSoundable{

publicvoidincreaseVolume();

publicvoiddecreaseVolume();

publicvoidstopSound();

publicvoidplaySound();

}

3.创建三个类Radio、Walkman和Mobilephone具体实现,分别添加代码:

//Mobilephone类

packageexperiment5_2;

classMobilephoneimplementsSoundable{

publicvoidincreaseVolume(){

System.out.println("增大手机音量");

}

publicvoiddecreaseVolume(){

System.out.println("减小手机音量");

}

publicvoidstopSound(){

System.out.println("关闭手机");

}

publicvoidplaySound(){

System.out.println("手机发出来电铃声");

}

}

//Walkman类

packageexperiment5_2;

classWalkmanimplementsSoundable{

publicvoidincreaseVolume(){

System.out.println("增大随声听音量");

}

publicvoiddecreaseVolume(){

System.out.println("减小随声听音量");

}

publicvoidstopSound(){

System.out.println("关闭随声听");

}

publicvoidplaySound(){

System.out.println("随声听发出音乐");

}

}

//Radio类

packageexperiment5_2;

classRadioimplementsSoundable{

publicvoidincreaseVolume(){

System.out.println("增大收音机音量");

}

publicvoiddecreaseVolume(){

System.out.println("减小收音机音量");

}

publicvoidstopSound(){

System.out.println("关闭收音机");

}

publicvoidplaySound(){

System.out.println("收音机播放广播");

}

}

4.创建people类及编写测试代码:

//People类

packageexperiment5_2;

classPeople{

publicvoidlisten(Soundables){

s.playSound();

}

}

//测试代码

packageexperiment5_2;

importjava.util.Scanner;

publicclassInterfaceTest{

publicstaticvoidmain(String[]args){

inti;

Peoplesportsman=newPeople();

Scannerscanner=newScanner(System.in);

Soundable[]soundDevice=newSoundable[3];

//往声音设备数组中放入能发声的设备

soundDevice[0]=newRadio();

soundDevice[1]=newWalkman();

soundDevice[2]=newMobilephone();

System.out.println("你想听什么?

请输入选择:

0-收音机1-随声听2-手机");

i=scanner.nextInt();

//开始听声音

sportsman.listen(soundDevice[i]);

soundDevice[i].increaseVolume();

soundDevice[i].stopSound();

scanner.close();

}

}

●实验内容三

1.建立packageexperiment5_3,其最终目录结构如下

packageexperiment5_3;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassDateTransfextendsJFrameimplementsKeyListener

{

/**

*

*/

privatestaticfinallongserialVersionUID=1L;

privatestaticDateTransffrm;

privatestaticJTextFieldtxt;

privatestaticJTextFielddata;

DateTransf(){

setTitle("数字与星期转换");

setLocation(700,300);

setSize(400,130);

}

publicstaticvoidmain(String[]args){

frm=newDateTransf();

frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frm.setLayout(newGridLayout(2,2));

txt=newJTextField(12);

data=newJTextField(12);

JLabellable1=newJLabel("输入数字:

");

JLabellable2=newJLabel("星期几:

");

frm.add(lable1);

txt.addKeyListener(frm);

frm.add(txt);

frm.add(lable2);

frm.add(data);

frm.setVisible(true);

}

publicvoidkeyPressed(KeyEvente){

if(e.getSource()==txt){

if(e.getKeyCode()==KeyEvent.VK_ENTER)//判断按下的键是否是回车键

{

try{

intnumber=Integer.parseInt(txt.getText());

switch(number){

case1:

data.setText("Mon");

break;

case2:

data.setText("Tue");

break;

case3:

data.setText("Wen");

break;

case4:

data.setText("Thu");

break;

case5:

data.setText("Fri");

break;

case6:

data.setText("Sat");

break;

case7:

data.setText("Sun");

break;

default:

JOptionPane.showMessageDialog(null,"您输入的数字不是1~7","无效日期",JOptionPane.INFORMATION_MESSAGE);

break;

}

}catch(Exceptione1){

//TODO:

handleexception

JOptionPane.showMessageDialog(null,"您输入的不是整数","无效日期",JOptionPane.INFORMATION_MESSAGE);

}

}

}

}

publicvoidkeyReleased(KeyEvente){

}

publicvoidkeyTyped(KeyEvente){

}

}

2.编译运行

五、实验结果

●实验内容一结果:

●实验内容二结果:

●实验内容三结果:

六、实验小结

1.这次实验的内容比较多,需要掌握Java的类和对象的声明和使用方法、Java的类的继承和实现方法、多态性在类的继承中的运用、接口的定义与使用、基本异常的处理机制、try语句与catch语句的搭配使用等等;

2.在实验过程中,重点是要区分好实例和类,灵活掌握类的调用。

理解接口的含义;体会try语句和catch语句在逻辑上的优势;

3.在实验过程中,刚开始分不清各个类之间的关系以及调用,后来专门花时间理解类和接口的含义,把这些弄明白之后,就比较既简单了。

 

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2