Java实验指导书版.docx

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

Java实验指导书版.docx

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

Java实验指导书版.docx

Java实验指导书版

第一部份绪论2

本课程实验的作用与任务2

本课程实验的基础知识2

本课程实验教学项目及其教学要求2

第二部份  基本实验指导3

实验一:

Java基本语法3

实验三:

Java面向对象程序设计

(一)5

实验五:

Java常用类9

实验七:

Java集合13

实验九:

GUI图形用户界面16

第一部份绪论

本课程实验的作用与任务

使学生进一步深刻理解Java语言基本概念、语法规则及程序结构,熟练掌握Java语言程序设计的基本方法,提高利用Java在网络环境下开发、设计应用程序的能力,从而进一步培养学生的创新能力和解决实际问题的能力。

熟悉JDK工具的编程和调试环境;熟练掌握选择和循环结构的程序设计;熟练掌握面向对象的程序设计思想,包括系统类的应用和用户自定义类;充分理解类的三种的特性:

封装、继承和多态,特别是通过接口和抽象类理解多态;掌握图形用户界面的设计,特别是事件处理;掌握包的使用;掌握常用的输入输出流类的应用。

最后能根据实验的要求认真完成实验报告。

本课程实验的基础知识

Java的基本数据类型包括:

byte,short,int,long,double,char。

Java的数组属于引用类型的数据,是将相同类型的数据按顺序组成的一种符合数据类型。

Java的运算符有算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符,特别要注意它们的优先级。

Java的控制语句有if语句、switch语句、for语句、while语句、do-while语句。

类是组成Java程序的基本要素,类有两个重要的成员:

成员变量和方法。

类是创建对象的模板,类将对象的属性和功能封装为一个整体。

成员变量和类变量的区别、实例方法和类方法的区别、方法的重载、成员的访问权限等都是实验课程所依据的重要理论。

继承、多态、接口、包及内部类都是Java中非常重要的概念。

Java使用“流”来读写数据。

Java的输入输出工作是通过FileInputStream类、FileReader类、BufferedReader类、ByteArrayInputStream类、ByteArrayOutputStream类等完成的。

要想使用Java设计图形用户界面,必须掌握Javax.swing和Java.awt包中的所有容器类和组件类的用法。

本课程实验教学项目及其教学要求

实验项目名称

教学目标、要求

1

开发运行环境及Java程序调试

2

2

Java程序流程控制

2

3

Java面向对象程序设计

(1)

2

4

Java面向对象程序设计

(2)

2

5

Java常用类

2

6

Java集合

2

7

Java异常处理程序设计

2

8

Java输入/输出流操作

2

9

图形用户界面设计

2

10

多线程编程技术

2

参考文献

《JAVA程序设计实验指导》,陈轶等编著,清华大学出版社,2006年。

《JAVA语言教程》(第1版),王伦津等编,人民邮电出版社,2001年。

《Java程序设计教程》(第5版),Deitel著,清华大学出版社,2004年。

《Java编程思想》(第3版),BruceEckel著,机械工业出版社,2005年。

第二部份  基本实验指导

实验一:

Java基本语法

实验目的

● 熟悉基本数据类型、变量的命名约定和常量的表达

● 掌握数据类型的自动转换与强制转换

● 掌握运算符与表达式的用法

● 掌握算术运算、关系运算及逻辑运算的优先关系

● 掌握位运算的使用方法

实验步骤

一、常量与变量的声明与使用

1. 分析并通过程序验证以下表达式:

   

(1)shorts=33L;

   

(2)inti=33L;

   (3)long l=33L;

   (4)floatf=33L;

   (5)doubled=33L;

2. 首先分析判断能否编译成功,并在表2-1-1中填写预测结果:

表2-1-1 实验结果

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果,在上表中填写验证结果。

   根据记录的实验结果回答以下问题:

   ● 哪些表达式能编译成功?

为什么?

   ● 哪些表达式不能编译成功?

为什么?

如何修改表达式才能编译成功?

 

二、运算符与表达式

定义两个变量a和b为:

   

(1)inta=10;

   

(2)intb=3;

(一)算术运算符操作练习

1. 求变量a和b的和、差、乘积、商和余数,并在下表中填写预测结果:

表2-2-1  实验结果

2. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果,在上表中填写验证结果。

(二)运算符优先级操作练习

1. 分析表达式,并在下表中填写预测结果,且比较运算符优先关系。

表2-2-2  实验结果

2. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果,在上表中填写验证结果。

   ●根据记录的预测结果和验证结果,分析++和+的运算优先级关系。

(三)位运算符操作练习

1. 求出a与b的各种位运算,并在下表中填写预测结果:

表2-2-3 实验结果

2. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果,在上表中填写验证结果。

   ●重新定义变量a的值,令a=-10,再次验证“a>>b”和“a>>>b”的结果,并分析“a>>b”与“a>>>b”的区别。

实验二java程序流程控制

实验目的:

1.理解Java程序的三种基本结构,即顺序结构、分支结构和循环结构

2.掌握用于分支的if…else、switch…case语句

3.掌握用于循环的for、while、do…while语句

4.熟悉break、continue作用

实验步骤:

一.if语句练习

1. 编写程序实现判断输入的年份是否为闰年。

   「提示」闰年:

如果一个年份能被4整除并且不能被100整除,或者能被400整除的就是闰年。

2. 源代码如下:

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果,并在下表中填写验证结果,是闰年填“Y”,不是闰年填“N”。

表2-1-1 实验结果

   ● 如何将上述代码中的

(1)至(6)代码改写为一条if语句实现。

二.switch语句练习

1. 编写程序实现学生成绩等级划分,输入考试成绩等级,程序会相应输出相应的百分制分数段,要求需使用switch语句。

   「提示」if语句和switch语句结合使用。

   等级划分如表3-1-2所示:

表3-1-2 学生成绩等级划分

2. 源代码如下:

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果,并输入测试case,对照等级划分表验证程序结果。

三.for语句练习

1. 编写程序,输出1到100之间,所有可以被3整除又可以被7整除的数。

2. 源代码如下:

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。

   ● 分别使用while和do_while循环语句改写本程序,并上机运行。

四.程序流程控制语句综合应用

   根据以下要求,运用程序流程控制语句打印“田”字。

   程序要求:

根据输入“田”字的长度进行打印输入,长度须为奇数,并且大于等于5,否则予以提示。

运行效果图如下:

   「提示」输入整型变量的语句如下代码所示:

实验三:

Java面向对象程序设计

(一)

实验目的

● 掌握类的定义; 掌握构造方法的使用;掌握对象的创建。

● 掌握静态变量与静态方法的使用;了解静态变量和成员变量的区别。

● 熟悉访问修饰符的作用;掌握访问修饰符的使用方法。

● 掌握方法的重载;掌握访问器get/set方法。

实验步骤

一、类和对象的创建

1. 创建一个圆类,成员变量有半径radius和圆周率pi,提供计算圆面积的方法,并在main方法中创建圆类的对象,调用其计算面积的方法进行测试。

2. 源代码如下:

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。

   ● 试述程序中两个类的各自作用。

   ● 类Circle都封装了什么?

求圆面积的初始数据是通过哪个方法实现的?

请修改程序采用构造函数的方法初始化数据。

   ● 类Circle是如何声明的?

在类中都声明了什么?

在主函数中是如何创建Circle类对象的?

二、静态变量和静态方法的设计

(一).静态变量和实例变量练习

1. 创建一个类,类名为StaticVariableTest,包含static变量和实例变量,类型为int型,在main方法中分别调用这2个变量并且输出结果。

2. 部分源代码如下:

3. 将上述代码中的main方法补充完整后,编译运行代码,查看程序执行结果。

   ● 根据完善后的源码,分析调用静态变量和实例变量有什么不同?

(二).静态方法和实例方法练习

1. 创建一个类,类名为StaticMethodTest,包含一个静态方法和一个实例方法,在main方法中分别调用这个两个方法进行测试。

2. 部分源代码如下:

3. 将上述代码中的main函数补充完整,编译运行代码,查看程序执行结果。

   ● 根据完善后的源码,分析如何调用静态方法和实例方法?

三、访问修饰符与方法的重载

(一).访问修饰符练习

1. 创建一个Person类,在该类中用不同的访问修饰符设立不同的person属性,再创建一个PersonTest类,包括main方法,在此类中分别访问Person类中各个属性。

2. 源代码如下:

3. 先填写下面的表格,在预测结果中,如果能打印输出,填写程序输出结果,否则填“N”。

   ● 记录程序运行结果。

表4-3-1 预测和验证结果

4. 使用Eclipse开发工具,编写上述代码,编译运行代码。

在上表中填写程序验证结果。

   ● 访问private变量时,编译会出现什么问题,为什么?

   ● 通过什么方式能访问private变量?

编程实现访问Person类中的private变量。

(二).方法重载练习

1. 给出一个OverloadTest类,并定义了一个amethod()方法,分析A)、B)、C)、D)和E)五个方法能否正确编译;

2. 源代码如下:

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。

   ● 根据程序执行结果分析类中A)、B)、C)、D)和E)五个方法哪些能编译,哪些不能编译,为什么?

实验四:

面向对象的程序设计

(二)

实验目的:

1.掌握类的继承、方法覆盖和变量的隐藏。

2.理解父类与子类的关系及创建方法。

3.掌握子类对象创建过程中与父类构造函数的关系。

4.了解抽象类与抽象方法。

5.掌握多态的实现机理及方法。

6.掌握接口的定义和使用

7.了解接口的设计方法

8.掌握包的定义和使用

实验步骤:

一.继承类的访问修饰符练习

1. 定义一个父类,有不同访问级别的成员变量和方法;

2. 源代码如下:

3. 再定义一个子类,继承上面的父类,访问父类的成员变量和成员方法。

4. 子类源代码如下:

5. 分析上面main方法的每一步中,哪些成员变量和方法可以访问,哪些不能访问?

填写下面表格中的预测结果,可以访问的填“Y”,不可以访问的填“N”。

表4-1-1 实验结果

6. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果,并填写表5-1-1中的验证结果。

二.成员变量的隐藏和方法覆盖练习

1. 以下程序具有继承、成员的覆盖与隐藏的概念。

2. 源代码如下:

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。

   ● 子类Son中隐藏了父类Father哪个变量?

覆盖了哪个方法?

   ● 根据上述程序,分析方法重载与方法覆盖的区别。

三.类的多态性的练习

1.下面源代码演示了多态的各种特性。

2. 源代码如下:

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。

   ● 分析上述代码中的who.var和who.staticVar、who.method()和who.staticMethod()的输出结果有什么不同?

为什么存在这种现象?

   ● 分析以下代码,编译时会有什么问题?

为什么?

   ● 分析以下代码,如何能让who访问Sub类的成员?

   ● 分析以下代码,运行会有什么问题?

为什么?

四.接口相关练习

1. 定义一个rec_Area_Peri接口,里面有两个方法getArea()和getPerimeter(),分别表示“计算面积”和“计算周长”;再定义一个Rectangle类,实现接口rec_Area_Peri。

2. 源代码如下:

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。

   ● 在实现类Rectangle中注释掉一个方法后进行编译,看发生了什么?

为什么?

   ● 在实现类Rectangle中将各实现方法前的public修饰符去掉再进行编译,看发生了什么?

为什么?

   ● 将接口rec_Area_Peri中定义的两个方法前加上abstract修饰符再编译,看对程序有影响否?

为什么?

   ● 将接口rec_Area_Peri中定义的两个方法拆分定义成两个接口,即每个接口只定义一个方法,程序将如何修改?

五.包的相关练习

1. 创建两个java文件,一个是mypack.java文件,定义两个类classA和classB,类修饰符为默认。

另一个是主类文件TestPackage.java,在该类中使用classA和classB。

两个java文件都在package1包中。

2. mypack.java源代码如下:

3. TestPackage.java源代码如下:

4. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。

   ● 将主类文件TestPackage.java封装在另一个包mypackage2,再进行编译,看编译结果提示什么结果?

   ● 以上条件不变,在主类classTestPackage加进importmypackage1.*语句,再编译,看是什么编译错误?

   ● 将类classA和classB修饰为public再编译,看发生了什么?

为什么?

   ●  将类classA和类classB分别放在两个文件中再编译,再看TestPackage还存在什么错误?

   ● 将方法aaa()和bbb()修饰为public,重新编译,所有错误是否消失?

无错误后可运行主类,观察运行结果。

实验五:

Java常用类

实验目的

● 掌握String类的构造方法和常用方法;掌握StringBuffer类的构造方法和常用方法。

● 了解Math类常用方法的使用;了解静态导入方法的使用。

● 掌握Date类和DateFormat常用方法的使用;掌握Calendar类常用方法的使用。

实验步骤

一、String类

1.给定一个字符串“abcdefghijklmnopqrstuvwxyz”,要求用两种方法进行倒序输出。

   「提示」

(1)转换成字符数组,进行倒序输出;

(2)调用StringBuffer类的方法。

2. 源代码如下:

   「提议」学好Java,要经常查看API文档,而且要会查看API文档,熟悉API中的常用包下的常用类。

通过查看API去了解String和StringBuffer中的方法,就可以完成此题了。

3. 经过上述分析,编写代码,编译运行代码,输出为“zyxwvutsrqponmlkjihgfedcba”。

   ● 分析上述程序,如何将字符串转换为字符数组?

   ● 转换之后如何进行输出,才能得到想要的倒序结果?

   ● 如何通过String参数构建StringBuffer对象?

   ● StringBuffer是否有方法可以直接进行倒序输出?

二、Math类

1. 给定如下两个整数:

   

(1)intvar1=12;

   

(2)intvar2=3;

2. 完成下列表格中的预测结果:

表7-2-1 预测和验证结果

3. 使用Eclipse开发工具,编码实现通过Math类中的max()方法和min()方法求最大值最小值,并根据程序执行结果填写上表的验证结果。

   「提示」Math中的方法都是static类型的,可以通过Math.xxx()的形式进行调用方法。

   ● 将代码修改为静态导入的方式,说明采用静态导入方式的优势。

三、Date类和Calendar类

(一).Date类和DateFormat类练习

1. 构造Date类对象获取系统日期,并格式化输出如下形式,如:

“2012-12-20星期六”。

2. 源代码如下:

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。

   ● 如果要输出为“2012-12-20星期六12:

12:

12”的形式应该如何做呢?

(二).Calendar类练习

1. 利用Calendar类输出2011年4月的日历页。

2. 源代码如下:

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。

   ● 考虑如何将程序修改为能根据当前日期改变的日历页,并且能够标识当前日期?

实验六:

java异常处理

实验目的:

1.了解Java异常处理机制的优点

2.了解Java异常的种类

3.掌握异常的捕获与处理

4.掌握异常的抛出

5. 熟悉用户自定义异常

6.了解异常处理原则

实验步骤:

一.异常捕获和处理的练习

1.下面源代码要捕捉的异常是除数为零和数组下标越界。

通过修改a和c[]下标值体验程序。

2. 源代码如下:

3. 使用Eclipse开发工具,编写并完善上述代码,编译运行代码,查看程序执行结果。

   ● 按下条件分别修改数据,编译后运行,观察输出结果,分析在try…catch块里哪些语句没有被执行,为什么?

块外哪些语句可被执行到,为什么?

   

(1)修改a=0,保持c[2]=200;

   

(2)保持a=10,修改c[3]=200;

   (3)修改a=0,修改c[3]=200。

二.自定义异常的定义和使用的练习

1. 设计两个数求商的程序,并设定一个异常类,判断两数相除时,除数是否为零,当除数为零时将抛给自定义异常类,并输出除数为零。

2. 部分源代码如下:

3. 分析上述代码,将division方法体中的代码补充完整,判断输入的除数是否为0。

如果为0,要抛出DivisorIsNotZeroException异常;如果不为0,则计算这个数的商。

并按要求创建自定义异常类DivisorIsNotZeroException。

在main方法中已经给出如何输入数据和调用所写方法。

4. 代码完善后,编译运行代码,输入下表数据进行验证,如果抛出异常填“Y”,否则填“N”。

表6-2-1测试数据

● 分析自定义异常是如何创建的?

 

实验七:

Java集合

实验目的

● 掌握Collection和Iterator接口的使用

● 掌握List集合的使用

● 了解集合的不同遍历方式

● 掌握Map、HashMap集合的使用

● 了解Map集合的常用方法

● 理解Map集合的实现原理

实验步骤

一、Collection集合

1. 创建一个集合,装20个不同的随机数(1-100),然后将排序结果,以及排序后的倒序结果输出。

2. 源代码如下:

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。

   ● 分析上述代码是如何判断列表list中是否存在元素的?

若选用其他方式如何实现?

   ● 在TestList类中编写一个方法(方法名为ListOut),选用Iterator和增强for循环遍历方式输出列表list的元素。

二、Map集合

1. 做一个map集合,key值100以内随机十个不同的数,value值26个字母随机取,输出key值和value值。

2. 源代码如下:

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。

● 通过什么方式能对Map里的元素进行有规则的排序?

比如将上述代码中的map值对象进行排序。

实验八:

java输入输出流操作

实验目的:

1.了解字节流和字符流

2.了解流的分类

实验步骤:

一.Java输出流操作

1. 求2-200间的素数,将结果通过输出流保存在“D:

\\prime.dat”文件中;

2. 源代码如下:

   

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。

二.Java输入流操作

1. 通过输入流操作,将上题中保存到“D:

\\prime.dat”中的素数读出来,并在控制台打印出来。

2. 源代码如下:

   

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。

三.Java输出流和输入流综合应用

   通过Java输出流和输入流操作练习,实现将“D:

\\prime.dat”文件复制到“D:

\\newprime.dat”。

   「提示」先将prime.dat中的内容通过输入流读取进来,再将读取到的内容通过输出流输出到目标文件中。

实验九:

GUI图形用户界面

实验目的

● 了解GUI

● 了解AWT常用容器

● 掌握AWT常用组件的用法

● 了解GUI常用布局管理器的种类及用法

● 掌握常用事件处理

实验步骤

一、AWT组件及其事件处理

1. 模拟计算器的布局,如图9-1-1所示。

图9-1-1 计算器布局

「分析」计算器整体布局包括两个输入文本框、一个结果输出框、加、减、乘、除、平方和开方按钮。

2. 源代码如下:

3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。

   ● 分析上述程序,采用了哪些类型的监听器?

采用什么方式实现监听接口?

   ● 采用了什么布局管理器,各组件按什么次序加入组件的?

   ● 分析事件执行方法actionPerfor

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

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

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

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