Java程序设计实验指导书版本.docx

上传人:b****3 文档编号:4669622 上传时间:2023-05-07 格式:DOCX 页数:29 大小:31.91KB
下载 相关 举报
Java程序设计实验指导书版本.docx_第1页
第1页 / 共29页
Java程序设计实验指导书版本.docx_第2页
第2页 / 共29页
Java程序设计实验指导书版本.docx_第3页
第3页 / 共29页
Java程序设计实验指导书版本.docx_第4页
第4页 / 共29页
Java程序设计实验指导书版本.docx_第5页
第5页 / 共29页
Java程序设计实验指导书版本.docx_第6页
第6页 / 共29页
Java程序设计实验指导书版本.docx_第7页
第7页 / 共29页
Java程序设计实验指导书版本.docx_第8页
第8页 / 共29页
Java程序设计实验指导书版本.docx_第9页
第9页 / 共29页
Java程序设计实验指导书版本.docx_第10页
第10页 / 共29页
Java程序设计实验指导书版本.docx_第11页
第11页 / 共29页
Java程序设计实验指导书版本.docx_第12页
第12页 / 共29页
Java程序设计实验指导书版本.docx_第13页
第13页 / 共29页
Java程序设计实验指导书版本.docx_第14页
第14页 / 共29页
Java程序设计实验指导书版本.docx_第15页
第15页 / 共29页
Java程序设计实验指导书版本.docx_第16页
第16页 / 共29页
Java程序设计实验指导书版本.docx_第17页
第17页 / 共29页
Java程序设计实验指导书版本.docx_第18页
第18页 / 共29页
Java程序设计实验指导书版本.docx_第19页
第19页 / 共29页
Java程序设计实验指导书版本.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java程序设计实验指导书版本.docx

《Java程序设计实验指导书版本.docx》由会员分享,可在线阅读,更多相关《Java程序设计实验指导书版本.docx(29页珍藏版)》请在冰点文库上搜索。

Java程序设计实验指导书版本.docx

Java程序设计实验指导书版本

《Java程序设计》

实验指导书

 

武汉科技大学信息科学与工程学院

《Java程序设计》实验教学大纲

 

实验课程名称:

Java程序设计英文名称:

TheJavaProgrammingLanguage

实验课程性质:

非独立设课应开实验学期:

5

课程编码:

0402004实验学时数:

10

适用专业:

电子信息工程

一、实验教学目的和要求

《JAVA程序设计》是一门实践性很强的专业课程。

通过上机实验,不仅可以帮助学生较好地掌握Java语言和面向对象程序设计的基本概念、基本方法和技巧,同时也可培养学生独立设计程序的能力,理解面向对象的编程思想。

实验教学目的:

1.使学生通过实验,验证书本和课堂教学内容:

逐步理解、体会、消化、巩固和补充课堂所学主要内容;

2.培养学生设计与动手能力:

通过设计性的实验任务,通过实践环节理解Java语言的基本结构和程序设计方法。

通过亲手编程掌握Java语言编程的方法,从而提高学生的分析问题、解决问题的能力和动手能力。

通过实验,要求学生应达到以下实验能力与标准:

1.熟练掌握Java程序的编辑、编译、运行步骤及程序调试的方法,熟练运用Java语言进行面向对象程序设计

2.深入理解面向对象的封装、继承和多态等特性

3.利用Java语言进行异常处理

4.能利用Java语言进行磁盘数据文件的建立及读写操作编程。

5.采用面向对象程序设计思想进行综合程序设计。

二、主要仪器设备(所开实验的主要仪器设备)

每个学生上机使用一台PC机进行程序开发,PC机的硬件、软件环境如下:

1)硬件:

CPUP43.0GHZ256M内存,80G硬盘空间。

2)软件:

操作系统:

WindowsXP

开发工具:

MyEclipse8.5、Jsdk1.6.1_02软件开发包

三、实验项目名称和学时分配

序号

实验项目名称

学时

分配

实验

属性

实验

类型

实验者类别

必开/选开

1

初步的面向对象的程序设计

2

专业类

设计性

本科生

必开

2

面向对象程序设计的继承、多态等特性的练习

2

专业类

设计性

本科生

必开

3

异常类的定义及处理

2

专业类

设计性

本科生

必开

4

文件的读/写操作

2

专业类

设计性

本科生

必开

5

综合程序设计

2

专业类

设计性

本科生

必开

四、实验课考核方式

1.实验报告:

每位同学必须独立书写实验报告,注意:

不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。

实验报告的内容应包括以下几个部分:

1)按照实验内容和实验步骤要求完成实验任务后,若程序已通过实验指导教师验收,则只在报告中重点给出调试分析过程描述:

包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);若程序未完全通过验收,则需再此基础上提交包含详细注释的源程序清单。

2)根据思考题要求,重点描述需求分析、概要设计和详细设计过程,并提交包含详细注释的源程序清单,最后详细描述程序调试分析过程。

2.考核方式

2.1实验课成绩根据学生的实验预习、实验纪律、实验动手能力、实验结果和实验报告等几个部分进行综合评定,并给出优、良、中、及格和不及格共五档成绩。

2.2实验课成绩占课程总成绩的30%。

五、实验指导书及主要参考书

[1]蔡翠平主编唐大仕编著,JAVA程序设计(修订本),北方交通大学出版社清华大学出版社,2007年.

[2]侯捷译,JAVA编程思想(第二版),机械工业出版社,2002.

[3]丁振凡,Java语言实用教程,北京邮电大学出版社,2005.

[4]丁振凡,Java语言实用教程实验指导,北京邮电大学出版社,北京,2006

 

目录

 

实验一初步的面向对象的程序设计练习1

实验二面向对象程序设计的继承、多态等特性的练习6

实验三异常类的定义及处理11

实验四流、文件及基于文本的应用17

实验五综合实验21

主要参考文献23

实验一初步的面向对象的程序设计练习

一、实验目的

1)掌握类和构造方法的定义。

2)掌握创建类实例的方法。

3)初步掌握面向对象的编程思想

二、实验内容

1)编写一个JavaApplication,利用JDK软件包中的工具在命令行方式下编译并运行这个程序,使之能够输出字符串信息“HelloWorld!

”。

(注:

其后的所有实验如无特别说明,均是在MyEclipse8.5环境下编译执行)

2)编写程序实现如下功能:

已知学生类有域变量(姓名、考号、综合成绩、体育成绩)和方法(获取综合成绩、获取体育成绩、显示基本信息),学校类有静态变量(录取分数线)和方法(设置录取分数、获取录取分数线),录取类有方法(获取学生是否符合录取条件,其中录取条件为综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分)。

现要求编写程序输出一组学生对象中被某学校录取的学生基本信息。

三、实验仪器、设备及材料

每个学生上机使用一台PC机进行程序开发,PC机的硬件、软件环境如下:

1)硬件:

CPUP43.0GHZ256M内存,80G硬盘空间。

2)软件:

操作系统:

WindowsXP

开发工具:

MyEclipse8.5、Jsdk1.6.1_02软件开发包

四、实验原理

1)类、域、方法

类体中包括域和方法,都是类的成员。

一个类可以定义多个域和方法。

(1)域也就是类的静态属性,也称为变量、成员变量等,格式为:

类型名域名;

在定义域变量前,还可以加修饰符。

(2)方法是类的动态属性。

Java的方法与其它语言中的函数类似。

由方法头和方法体组成:

修饰符1……返回类型方法名(形参列表)throws异常列表

{

方法体语句;

}

其中,形参列表格式为:

形参类型形参名1,形参类型形参名2

2)类和对象

(1)类(class):

抽象的集合概念。

类包括系统类库中已定义好的类和用户自定义的类

(2)对象(实例instance):

实际个体。

创建某个类的具体对象(类似变量声明),具体定义格式为:

类名对象变量=new类名([参数]);

(3)构造方法:

构造方法的名字与类名相同。

创建对象时自动调用,并对对象进行初始化操作。

注意:

构造方法前面没有返回类型定义,它没有返回值,也不是void。

[不能return];JAVA每个类都至少有一个构造方法[系统默认无参数构造方法];一旦定义了构造方法,系统不再提供默认构造方法。

(4)对象的使用:

要访问或调用一个对象的域或者方法,使用.操作符。

一般形式:

引用对象变量名.域/方法名;如p.sayHello();

由于只能用对象变量来访问这个对象的域或方法,不通过引用变量就没有办法访问,体现了面向对象的“封装性”。

3)静态域和静态方法

(1)静态域

用static修饰的域属于类的静态域(静态量,类变量),不用static修饰的为实例变量(实例域)。

静态域的特点如下:

●它们是类的域,不属于任何一个类的具体对象实例。

它保存在类的内存区域的公共存储单元。

●对于该类的任何一个实例对象,静态域是一个公共的存储单元。

●任何一个类的对象访问它,取到的都是相同的值;

●任何一个类的对象修改它,那么也是在对同一个内存单元进行操作。

(2)静态方法

用static修饰的方法属于类的静态方法,又称为类方法。

不用static修饰的方法为实例方法。

类方法的本质是该方法属于整个类,而不是属于某个实例。

静态方法具有如下特点:

●static方法是属于整个类的,它在内存中的代码段将随着类的定义而进行分配和装载。

而非static的方法是属于某个对象的,在这个对象创建时,对象的方法在内存中有自己的代码段。

●static方法不能操纵属于某个对象的成员变量,只能处理属于类的成员变量,即只能处理static域和方法。

●类方法中不能访问实例变量,也不能使用this或super。

●调用类方法可以使用类名,也可以用具体对象名。

五、实验步骤

1)编写一个JavaApplication,利用JDK软件包中的工具编译并运行这个程序。

步骤

(1):

编写、编译Java源程序。

打开MyEclipse,新建一个java文件,键入如下程序代码:

publicclassHello

{

publicstaticvoidmain(Stringargs[])

{System.out.println("Hello,World!

");}

}

将文件命名为Hello.java,注意保存文件Hello.java到路径“e:

\自己学号\java\”下。

步骤

(2):

编译Java源程序

Java源程序编写后,要使用Java编译器(javac.exe)将Java源程序编译成字节码文件。

Java源程序都是扩展名为.java的文本文件。

编译时首先读入Java源程序,然后进行语法检查,如果出现问题就终止编译。

语法检查通过后,生成可执行程序代码即字节码,字节码文件名和源文件名相同,扩展名为.class。

打开命令提示符窗口(MS-DOS窗口)进入Java源程序所在路径e:

\自己学号\java\”。

键入编译器文件名和要编译的源程序文件名,具体如下:

Setpath=%path%;c:

\programfiles\jdk1.6.0_02\bin;

javac-dclassHello.java

按回车键开始编译(注意:

文件名H要大写,否则运行会出问题)。

如果源程序没有错误,则屏幕上没有输出,键入“dir”按回车键后可在当前目录中看到生成了class子目录,在class子目录下有一个同名字的.class文件即“Hello.class”。

否则,将显示出错信息。

步骤(3):

运行Java程序

按如下命令回到e:

\自己学号\java\目录:

cd..

使用Java解释器(java.exe)可将编译后的字节码文件Hello.class解释为本地计算机代码。

在命令提示符窗口或MS-DOS窗口键入解释器文件名和要解释的字节码文件名:

java–classpathe:

\自己学号\java\classHello

按回车键即开始解释并可看到运行结果。

2)编写程序实现如下功能:

已知学生类有域变量(姓名、考号、综合成绩、体育成绩)和方法(获取综合成绩、获取体育成绩、显示基本信息),学校类有静态变量(录取分数线)和方法(设置录取分数、获取录取分数线),录取类有方法(获取学生是否符合录取条件,其中录取条件为综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分)。

现要求编写程序输出一组学生对象中被某学校录取的学生基本信息。

(注意:

这个程序可以直接在Eclipse集成编辑环境中完成)

步骤

(1):

定义类Stduent,并添加如下域变量:

Stringname;Stringid;floatcomScore;floatscore;

步骤

(2):

在类Student中添加如下方法,并编写代码实现具体方法的功能:

Student(Stringname,Stringid,floatcomScore,floatscore){……}

floatgetcomScore(){……}

floatgetscore(){……}

voidprint(){……}

步骤(3)定义类School,并添加静态变量

staticfloatscoreLine;

添加静态方法

staticfloatgetScoreLine(){……}

staticvoidsetScoreLine(floatscore){……}

步骤(4)定义一个Application程序类Enroll并添加方法:

publicstaticvoidmain(Stringargs[]){……}

staticbooleanisEnroll(Students){……}

步骤(5)保存文件名为Enroll.java,然后编译、调试和运行程序。

六、实验报告要求

每位同学必须独立书写实验报告,注意:

不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。

实验报告的内容应包括以下几个部分:

1)按照实验内容和实验步骤要求完成实验任务后,若程序已通过实验指导教师验收,则只在报告中重点给出调试分析过程描述:

包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);若程序未完全通过验收,则需再此基础上提交包含详细注释的源程序清单。

2)根据思考题要求,重点描述需求分析、概要设计和详细设计过程,并提交包含详细注释的源程序清单,最后详细描述程序调试分析过程。

七、实验注意事项

1)每个同学必须按时参加实验,并且每次实验前提交程序代码初稿,否则不能进行实验。

2)实验中严禁随意拷贝其他同学的程序或给其他同学拷贝。

3)在实验过程中,爱惜实验器材,避免对实验器材造成不必要的损害。

如发生损坏照价赔偿。

4)在实验用机上使用移动存储设备之前,必须用杀毒软件进行检测,否则不能使用。

5)每位同学完成实验任务后,必须经过实验指导老师验收后方可离开。

实验二面向对象程序设计的继承、多态等特性的练习

一、实验目的

1)掌握类的继承机制。

2)熟悉类中成员变量和方法的访问控制。

3)熟悉方法或构造方法多态性。

4)熟悉接口的定义方法。

二、实验内容

1)编写程序实现如下功能:

已知Person类包含三个公共域变量(姓名、性别、年龄)和一个构造方法,Student类是Person类的派生类,包含两个新的公共域变量(学号、班号)、两个公共方法(修改年龄、显示基本信息)及一个构造方法。

定义一组学生对象,并初始化他们的基本信息,然后依次输出。

2)输入课本例5-4的源程序,观察其运行结果,然后将Shape类分别定义为一个抽象类和接口,然后将源程序进行修改,让其实现相同功能。

三、实验仪器、设备及材料

每个学生上机使用一台PC机进行程序开发,PC机的硬件、软件环境如下:

1)硬件:

CPUP43.0GHZ256M内存,80G硬盘空间。

2)软件:

操作系统:

WindowsXP

开发工具:

MyEclipse8.5、Jsdk1.6.1_02软件开发包

四、实验原理

1)类的继承

面向对象语言允许从一个已有的类[父类]定义新的类[子类],从而形成继承关系。

父类是所有子类的公共域和公共方法的集合,每个子类是父类的特殊化。

子类继承父类的状态和行为,同时也可以修改父类,并可以添加新的状态和行为。

(1)域的继承和添加

子类可以从父类那里继承所有的没有被private和static修饰的域。

那么子类就无需再重复定义。

还可以在子类中定义其独特的域变量:

(2)方法的继承、覆盖和添加

父类的非private方法也可以被子类自动继承。

同时子类也可以重新定义与父类同名的方法,实现对其的覆盖/重置(override/overlay)。

在覆盖父类方法时注意应保持完全相同的方法名、返回值和参数类型列表,即重写父类中的方法。

另外子类还可以重载父类的方法或添加新的方法。

2)访问修饰符

Java提供4种访问权限:

public、protected、private和默认。

描述

private

默认

protected

public

同一类中

同一包中对子类

×

同一包中对非子类

×

不同包中对子类

×

×

不同包中对非子类

×

×

×

3)抽象类和接口

(1)抽象类和抽象方法

一个方法如果没有定义方法体,则称该方法为抽象方法。

包含一个或多个抽象方法的类,称为抽象类。

定义抽象类后,其它类可以对它进行扩充并且通过实现其中的抽象方法,使抽象类具体化。

Java语言中,用abstract关键字来修饰一个类时,这个类叫做抽象类,用abstract关键字来修饰一个方法时,这个方法叫做抽象方法。

抽象类的语法格式如下

abstractClass{…}//抽象类

抽象方法的语法格式如下

abstractreturnTypeabstractMethod([paramlist])//抽象方法

抽象类必须被继承,抽象方法必须被重写。

抽象方法只需声明,无需实现,抽象类不能被实例化。

若类中包含了抽象方法,则该类必须被定义为抽象类。

(2)接口

接口是抽象类的一种,只包含常量和方法的定义,而没有方法的实现,且其方法都是抽象方法。

它的用处体现在下面几个方面:

●通过接口指明多个类需要实现的方法。

●通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系。

●通过接口了解对象的交互界面,而无需了解对象所对应的类。

接口的定义包括接口声明和接口体,接口声明的格式如下:

[public]interfaceinterfaceName[extendslistOfSuperInterface]{…}

其中,extends子句与类声明的extends子句基本相同,不同的是一个接口可有多个父接口,用逗号隔开,而一个类只能有一个基类。

4)多态的两种表现形式

(1)同一类中的方法多态(方法重载):

同一类中允许多个同名方法,通过参数的数量、类型的差异进行区分。

(2)子类对父类方法的重新定义(方法覆盖):

方法名、返回值和参数形态完全一样。

五、实验步骤

1)编写程序实现如下功能:

已知Person类包含三个公共域变量(姓名、性别、年龄)和一个构造方法,Student类是Person类的派生类,包含两个新的公共域变量(学号、班号)、两个公共方法(构造方法、修改年龄、显示基本信息)和一个构造方法。

定义一组学生对象,并初始化他们的基本信息,然后依次输出。

步骤

(1):

定义类Person,并添加以下公共域变量

publicStringname;publiccharsex;publicintage;

添加构造方法Person(Stringname,charsex,intage){……}

步骤

(2):

基于类Person派生类Student,并添加如下公共域变量和方法

publicStringclassno;publicStringsno;

publicvoidupdateAge(intage){……}

voidtoString(){……}

Student(Stringname,charsex,intage,Stringsno,Stringname)

{super(name,sex,age);

…….

}

步骤(3):

定义一个包含main方法的Application程序类TestStudentPerson,初

始化一个学生类对象数组,并利用循环语句显示所有学生基本信息。

2)输入课本例5-4的源程序,观察其运行结果,然后将Shape类分别定义为一个抽象类和接口,然后将源程序进行修改,让其实现相同功能。

步骤

(1):

在编辑调试工具中输入课本例5-4TestVirtualInvoke.java程序,编译运行,观察程序的运行结果,并思考为什么产生这样的结果。

步骤

(2):

将Shape类定义为abstactclassShape{……},然后重新定义Shape抽象类的派生类Circle、Triangle、Line,最后编译运行,观察程序的运行结果是否和上面的结果相同。

步骤(3):

将Shape定义为interfaceShape{……},然后基于Shape接口实现类Circle、Triangle、Line,最后编译运行,观察程序的运行结果是否和上面的结果相同。

六、实验报告要求

每位同学必须独立书写实验报告,注意:

不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。

实验报告的内容应包括以下几个部分:

1)按照实验内容和实验步骤要求完成实验任务后,若程序已通过实验指导教师验收,则只在报告中重点给出调试分析过程描述:

包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);若程序未完全通过验收,则需再此基础上提交包含详细注释的源程序清单。

2)根据思考题要求,重点描述需求分析、概要设计和详细设计过程,并提交包含详细注释的源程序清单,最后详细描述程序调试分析过程。

七、实验注意事项

1)每个同学必须按时参加实验,并且每次实验前提交程序代码初稿,否则不能进行实验。

2)实验中严禁随意拷贝其他同学的程序或给其他同学拷贝。

3)在实验过程中,爱惜实验器材,避免对实验器材造成不必要的损害。

如发生损坏照价赔偿。

4)在实验用机上使用移动存储设备之前,必须用杀毒软件进行检测,否则不能使用。

5)每位同学完成实验任务后,必须经过实验指导老师验收后方可离开。

八、思考题

编写一个完整的JavaApplication程序,包含Circle类、Cylinde类、Test类、具体要求如下:

⑴Circle类

①属性

Radius:

double型,表示圆的半径

②方法

doublefindArea():

返回圆的面积(半径若为r,则面积为πr2)

doublegetRadius():

返回圆的半径

⑵Cylinder类

继承Circle类,并有以下属性和方法:

①属性

length:

double型,表示圆柱体的高

②方法

Cylinder(doubler,doublel):

构造函数,给圆柱体的半径和高赋初值

doublefindVolume():

返回圆柱体的体积

toString():

返回圆柱体的半径、高、体积等信息

⑶Test类作为主类要完成测试功能

①生成Cylinder对象②输出对象的描述信息

importjava.io.*;

publicclassTest

{publicstaticvoidmain(Stringargs[]){}

classCircle//Circle类定义,请填写完整

{finalfloatPI=3.14159f;

doubleradius;

doublegetRadius(){returnradius;}

Circle(doubler){}

doublefindArea(){}

}

classCylinderextendsCircle//Cylinder类定义

{doublelength;

Cylinder(doubler,doublel){}

doublefindVolume(){}

publicStringtoString(){}

}

实验三异常类的定义及处理

一、实验目的

1)了解异常处理方法。

2)熟悉并掌握常见异常的捕获方法。

3)熟悉JDK中已经定义的若干异常类的层次结构

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

当前位置:首页 > 工作范文 > 行政公文

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

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