《面向对象程序设计Java》实验讲义new.docx

上传人:b****6 文档编号:7318607 上传时间:2023-01-22 格式:DOCX 页数:15 大小:37.75KB
下载 相关 举报
《面向对象程序设计Java》实验讲义new.docx_第1页
第1页 / 共15页
《面向对象程序设计Java》实验讲义new.docx_第2页
第2页 / 共15页
《面向对象程序设计Java》实验讲义new.docx_第3页
第3页 / 共15页
《面向对象程序设计Java》实验讲义new.docx_第4页
第4页 / 共15页
《面向对象程序设计Java》实验讲义new.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

《面向对象程序设计Java》实验讲义new.docx

《《面向对象程序设计Java》实验讲义new.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计Java》实验讲义new.docx(15页珍藏版)》请在冰豆网上搜索。

《面向对象程序设计Java》实验讲义new.docx

《面向对象程序设计Java》实验讲义new

面向对象程序设计Java实验讲义

 

黑龙江大学软件学院

2007年9月

目录

前言4

实验要求5

实验1Java程序的编辑、编译、运行环境(2学时)6

1.实验内容6

2.预习内容6

3.实验类型6

4.实验目的6

5.实验要求6

实验2Java基本语法(2学时)7

1.实验内容7

2.预习内容7

3.实验类型7

4.实验目的7

5.实验要求7

6.思考题8

实验3类和对象的使用(2学时)9

1.实验内容9

2.预习内容9

3.实验类型9

4.实验目的9

5.实验要求9

6.思考题10

实验4包及其使用(2学时)11

1.实验内容11

2.预习内容11

3.实验类型11

4.实验目的11

5.实验要求11

实验5继承性(2学时)12

1.实验内容12

2.预习内容12

3.实验类型12

4.实验目的12

5.实验要求12

6.思考题12

实验6Object类(2学时)13

1.实验内容13

2.预习内容13

3.实验类型13

4.实验目的13

5.实验要求13

6.思考题13

实验7数组(2学时)14

1.实验内容14

2.预习内容14

3.实验类型14

4.实验目的14

5.实验要求14

6.思考题14

实验8异常处理(2学时)15

1.实验内容15

2.预习内容15

3.实验类型15

4.实验目的15

5.实验要求15

实验9输入/输出处理(2学时)16

1.实验内容16

2.预习内容16

3.实验类型16

4.实验目的16

5.实验要求16

实验10字符流操作(2学时)17

1.实验内容17

2.预习内容17

3.实验类型17

4.实验目的17

5.实验要求17

实验11GUI程序(2学时)18

1.实验内容18

2.预习内容18

3.实验类型18

4.实验目的18

实验12网络通信(4学时)19

1.实验内容19

2.预习内容19

3.实验类型19

4.实验目的19

5.实验要求19

6.思考题19

前言

《面向对象程序设计(java)实验》在面向对象程序设计的基础上,阐述Java语言的编程基础及其设计方法。

内容包括:

Java程序的输入输出、表达式与运算符、结构化程序设计、类、属性和方法、继承和重载、包和接口、Applet与图形用户界面以及相关Java网络设计等知识,本课程注重实际应用操作,采用实例讲解为学生进一步学习J2EE和J2ME打下技术基础。

结合对实例的开发,以学生为主体,充分发挥学生的主观能动性,引导学生自学教材部分内容,并锻炼学生自行开发各种小型程序模块;培养和锻炼学生利用Java语言进行网络编程的能力。

《面向对象程序设计(java)实验》是以程序设计操作为主的技能课程,它由若干个独立的实验项目组成,与相应的理论课—《面向对象程序设计(java)》配套,本课程的目标是:

(1)加深学生对课堂讲授内容的理解,从计算机语言的基本概念、面向对象程序设计的基本方法、语法规则等方面加深理解,打好面向对象程序设计、软件开发的良好基础。

(2)在上机实验中,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。

(3)在对Java程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。

(4)通过上机实践,加深学生对计算机软件运行环境、Java集成开发环境的了解。

 

实验要求

《面向对象程序设计(java)实验》是与《面向对象程序设计(java)》理论课配套的实验课程。

通过本课程的实验训练,要求学生能运用所学理论知识进行基本的面向对象程序设计,培养其规范的编程习惯,掌握基本的操作技能和编程思想。

同时要注意培养学生实事求是的科学态度,相互协作的团队精神,为学习后续课程,参加实际工作和开展科学研究打下良好的基础。

具体要求是:

(1)本课程以实验为主,配合理论课的教学。

任课教师需向学生讲清课程的性质,任务,要求,课程安排和进度,平时考核内容,期末考试办法,实验守则及实验室安全制度等。

(2)本课程主要设置下列类型的实验:

(1)基本操作训练,

(2)验证性及设计性实验;整个实验过程包括课前准备,实验操作,实验报告等环节。

学生在实验前必须进行准备。

(3)根据实验内容不同,基本操作性的实验1人1组,设计性实验可根据情况多人一组,每个实验要求在规定时间内由学生独立完成。

(4)实验过程中,老师应在实验室进行巡视,及时回答问题,纠正学生的错误操作,检查学生的实验报告。

(5)任课教师要认真备课,提前预做实验,上好每一堂课。

实验前清点学生人数。

实验的验收将分为两个部分。

第一部分是上机操作,包括设计结果的源程序的验收与检查。

第二部分是提交书面的实验报告。

实验1Java程序的编辑、编译、运行环境(2学时)

1.实验内容

(1)编写并调试运行HelloWorld应用程序。

(2)编写并调试运行HelloWorld小应用程序。

(3)设置path和classpath环境变量。

(4)实现一个整数N的阶乘运算。

N为固定常数。

2.预习内容

Java语言概述

3.实验类型

验证型

4.实验目的

(1)了解Java程序运行环境;

(2)掌握程序调试的全部过程;

(3)学会编写和调试JavaApplication和JavaApplet程序;

(4)掌握java环境变量的配置

5.实验要求

(1)在修改源程序文件名时,测试源程序文件名是否必须与公有类类名一致;若源程序中没有公有类,源程序文件名可以如何命名;

(2)注意观察字节码文件何时生成,在何路径下生成;

(3)掌握设置环境变量的方法。

(4)阶乘计算部分必须用函数的递归调用来实现,函数定义时应声明为static,如:

StaticlonggetFactorial(inti){

}

实验2Java基本语法(2学时)

1.实验内容

(1)在屏幕上按如下格式输出乘法口诀表:

1X1=1

1X2=22X2=4

1X3=32X3=63X3=9

其中,每行的多个乘法公式之间用‘\t’分割

(2)编写一个简单的猜数游戏程序:

●利用Math.random()方法生成0-1之间的double型数dNum,将dNum转换为0-100之间的整数iNum。

●利用KeyInput.readInt()方法接收键盘输入的整数inNum。

如果inNum小于iNum,在屏幕上显示“输入的值小,请输入更大的数.”;如果inNum大于iNum,在屏幕上显示“输入的值大,请输入更小的数.”;如果inNum等于iNum,在屏幕上显示“猜对了.”,并结束运行。

●猜测错误的时候,重新输入inNum,直到猜对为止。

如果猜测10次后仍未猜对,显示“猜测次数已达10次,猜数失败.”,并结束程序的运行。

程序调试通过后填写实验报告。

2.预习内容

(1)常用控制语句的格式

(2)System.out.print和System.out.println方法的区别

3.实验类型

设计型

4.实验目的

掌握Java循环控制语句和System.out.print、System.out.println方法的使用

掌握Java随机数方法和键盘输入类KeyInput的使用

5.实验要求

(1)乘法口诀表部分

●编写NineMultiply类

●在main方法中实现乘法口诀表的输出

(2)猜数游戏部分

●编写NumGuessGame类

●在main方法中定义相关变量

●生成dNum和iNum

●利用KeyInput.readInt(),获取inNum值

●根据inNum和iNum值,显示相应信息

●如果猜测10次仍未成功,结束程序的运行

6.思考题

●如何将程序修改成可以猜测多个数的程序?

●如何将猜数游戏程序编写成更为灵活的类?

实验3类和对象的使用(2学时)

1.实验内容

(1)实现一个Point类,该类包含表示坐标的两个int型变量x、y,构造方法Point()和Point(intxx,intyy),返回x值和y值的intgetX()和intgetY()方法,计算两点间距离的doubledistance(Point)方法。

其中计算平方根用Math.sqrt()方法。

(2)实现一个Circle类,该类包含表示圆心的Point型变量center,表示半径的intradius变量,以及构造方法Circle()、Circle(intxx,intyy,intr)、Circle(Pointc,intr),返回周长和面积的intperimeter()、doublearea()方法,返回两个圆是否为同一个圆(返回0)、同心圆(返回1)、相交的圆(返回2)、分离的圆(返回3)、包含的圆(返回4)等关系的intrelation(Circlec)等方法。

PI值可以用Math.PI常量。

(3)实现测试上述两个类的ClassTest类。

该类在main方法中分别创建若干个Point对象和Circle对象,并调用相关方法,输出方法的返回值,验证其正确性。

(4)程序调试通过后填写实验报告。

2.预习内容

(1)类的组成:

成员变量、成员方法、构造方法

(2)对象的创建和使用

3.实验类型

设计型

4.实验目的

掌握Java类的设计原理和对象的使用方法

5.实验要求

(1)编写Point类,实现相关方法

(2)编写Circle类,实现相关方法

(3)编写ClassTest类,并在main方法中创建两个Point对象和两个Circle对象,对象的参数可以用固定值

(4)调用Point和Circle的相关方法,并把返回值输出到屏幕上。

6.思考题

(1)为什么distance()和relation()方法只需要一个参数?

提供两个或更多的参数有什么缺点?

(2)relation()方法只返回整数,而不是在方法内部直接输出判断结果。

这么做有什么优点?

实验4包及其使用(2学时)

1.实验内容

(1)将1-3实验中类的包名分别调整为experiment?

,并重新运行,验证是否运行正确。

其中?

表示实验编号。

(2)实现Rectangle类和RectangleTest类。

其中,Rectangle类隶属于包的包名为experiment9,含有两个方法:

构造方法Rectangle()和计算面积的方法area();RectangleTest类不属于experiment9包,利用RectangleTest类调用包experiment9中的Rectangle类,计算矩形面积。

2.预习内容

Java包及其使用方法

3.实验类型

设计型

4.实验目的

(1)理解包的概念以及package语句的用法。

(2)掌握编译和运行包的方法。

(1)理解import语句的用法。

(3)掌握自己设计包的方法和步骤以及调用自己设计的包的方法。

5.实验要求

(1)

●把实验1-3的程序制作为3个Java包。

●实验中的包名为experiment?

,其中?

表示实验编号。

例如,实验1中的HelloWorldApp类的所隶属的包名为experiment1。

(2)

●实现Rectangle类,含有两个方法:

构造方法Rectangle()和计算面积的方法area()。

●Rectangle类隶属于包的包名为experiment9

●实现RectangleTest类。

利用RectangleTest类调用包experiment9中的Rectangle类,计算矩形面积。

(3)提交调试通过的Java程序。

 

实验5继承性(2学时)

1.实验内容

(1)编写一个代表圆柱体的Cylinder类,该类是Circle类的子类。

Cylinder类包括圆柱体的高度变量height以及计算圆柱体的体积方法volume()和计算表面积的方法surfaceArea()。

(2)编写测试Cylinder类的CylinderTest类,并在该类得main方法中调用Cylinder类的相关方法。

(3)程序调试通过后填写实验报告。

2.预习内容

(1)类的定义

(2)继承机制及其作用

3.实验类型

设计型

4.实验目的

掌握Java继承机制的使用方法

5.实验要求

(1)确定Circle类的包名

(2)在Cylinder类中用import导入Circle类

(3)编写Cylinder类的代码

(4)编写CylinderTest类的代码

6.思考题

您还可以设计哪些Circle类的子类?

实验6Object类(2学时)

1.实验内容

(1)重写Point和Circle类的equals()、toString()方法,并测试这些方法的正确性。

(2)程序调试通过后填写实验报告。

2.预习内容

(1)Object类的作用

(2)equals()方法和toString()方法

3.实验类型

设计型

4.实验目的

掌握Object类与其它类之间的关系

5.实验要求

(1)在Point和Circle类中分别添加equals()方法和toString()方法

(2)测试上述方法的正确性

6.思考题

为什么equals()方法和toString()方法的访问类型必须为public?

实验7数组(2学时)

1.实验内容

(1)设计和编写代表矩阵的Matrix类。

该类包括矩阵行列数变量introws和intcols,矩阵数据数组doubledata[][],构造方法Matrix()、Matrix(introws,intcols)、Matrix(introws,intcols,doubledata[][]),获取某元素值的方法getData(introw,intcol),设置某元素值的方法setData(introw,intcol,doublevalue),计算两个矩阵的乘积的方法multiply(Matrixm)以及toString()等内容。

(2)编写测试类MatrixTest,并在该类中创建两个矩阵对象,计算其乘积。

(3)程序调试通过后填写实验报告。

2.预习内容

(1)数组的定义

(2)类的定义

3.实验类型

设计型

4.实验目的

掌握数组的定义和使用

5.实验要求

(1)编写Matrix类

(2)编写MatrixTest类。

在该类中通过键盘输入方式确定所要创建的两个矩阵的行列数,根据行列数随机生成数据或键盘输入,并通过setData方法生成矩阵的内容。

(3)计算矩阵的乘积,并把结果通过toString方法输出到屏幕上

6.思考题

(1)您还可以编写哪些Matrix类的方法?

(2)如果没有setData方法,如何将矩阵的元素值赋值?

实验8异常处理(2学时)

1.实验内容

将教材书后的习题二第6小题调试通过。

2.预习内容

异常处理

3.实验类型

其它型

4.实验目的

(1)理解异常的使用和自定义异常类的方法。

(2)理解throw和throws的区别和联系。

5.实验要求

(1)将教材书后的习题二第6小题调试通过。

(2)提交调试通过的Java程序。

实验9输入/输出处理(2学时)

1.实验内容

结合例10-3和11-3,实现文件复制和显示功能的程序。

2.预习内容

输入/输出处理

3.实验类型

验证型

4.实验目的

理解FileInputStream和FileOutputStream类的使用方法。

5.实验要求

(1)结合例10-3和11-3,实现文件复制和显示功能的程序。

把程序调试通过。

(2)在以上操作中,均要求带有异常处理结构

(3)提交调试通过的Java程序。

 

实验10字符流操作(2学时)

1.实验内容

实现一个简单的文本编辑器,该编辑器从键盘依次读入成行的文本,并将文本内容及时写入文件中,文件名由命令行参数指定。

如果输入“stop”,运行结束。

2.预习内容

输入/输出处理中的字符流操作

3.实验类型

设计型

4.实验目的

(1)理解字符流操作:

练习面向字符的I/O流操作

(2)能够创建、读写、更新文件

5.实验要求

(1)在以上操作中,均要求带有异常处理结构。

(2)提交调试通过的Java程序。

实验11GUI程序(2学时)

1.实验内容

(1)编写一个简易计算器程序,其界面如下图所示:

(2)用户界面可以手工编码的形式构造,也可以使用Netbeans、Eclipse等开发工具

(3)编写各个按钮的代码,使得能够进行四则运算。

(4)程序调试通过后填写实验报告。

2.预习内容

(1)图形界面程序的特点

(2)事件处理机制的原理

3.实验类型

设计型

4.实验目的

掌握图形界面程序的设计方法和事件处理机制

实验12网络通信(4学时)

1.实验内容

(1)编写两点间实时通信的图形界面软件。

该软件分为客户端和服务器端两个程序,客户端通过IP地址与服务器端连接,连接成功后双方能够实时发送通信数据。

(2)程序调试通过后填写实验报告。

2.预习内容

(1)GUI编程

(2)线程的构造

(3)Socket通信

3.实验类型

综合型

4.实验目的

掌握GUI编程、网络通信、I/O流和线程的使用

5.实验要求

(1)编写服务器端类TalkServer,该类建立ServerSocket对象,并在接收客户端的连接时建立接收客户端信息线程和接收键盘输入线程。

(2)编写客户端类TalkClient,该类通过IP地址(键盘输入或命令行参数,如果两个程序都在本机上运行,IP地址为127.0.0.1)与服务器端连接。

连接成功后建立接收服务器端信息线程和接收键盘输入线程。

(3)分别打开两个命令窗口,运行服务器端和客户端程序。

(4)键盘输入通信内容,并查看客户端和服务器端之间是否通信成功。

6.思考题

(1)如果将程序修改成可以在多个客户端之间实时通信的程序,服务器端应该做哪些调整?

(2)为什么必须采用线程?

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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