
Java语言是一门发展非常快、不断创新的计算机语言,许多大型项目已经采用了Java语言来开发。"Java程序设计"课程得到许多学校的关注。为了适应计算机教学发展趋势,有必要编写一本符合当前Java语言发展趋势和教学现状的实验指导,帮助广大读者了解和掌握Java语言的当前的特点,以克服读者"学"和"实用"脱节的问题。
结合编者从事Java课程教学活动中积累的经验,从实用性、科学性以及当前的计算机技术出发编写本书。本书分成四大部分:Java语言基础、面向对象程序设计、GUI编程和高级编程初步。
Java语言是一门发展非常快、不断创新的计算机语言,许多大型项目已经采用了Java语言来开发。"Java程序设计"课程得到许多学校的关注。为了适应计算机教学发展趋势,有必要编写一本符合当前Java语言发展趋势和教学现状的实验指导,帮助广大读者了解和掌握Java语言的当前的特点,以克服读者"学"和"实用"脱节的问题。
结合编者从事Java课程教学活动中积累的经验,从实用性、科学性以及当前的计算机技术出发编写本书。本书分成四大部分:Java语言基础、面向对象程序设计、GUI编程和高级编程初步。
第1部分:Java语言基础
从第1章到第4章,是了解Java的语言基础,涉及了Java的背景知识、Java的数据类型和基本操作、控制语句、方法、数组。在这一部分着重介绍了如何设置JDK 5.0路径、在DOS环境下编译和运行Java Application和Java Applet,尤其对在JBuilder# 2005集成开发环境中加载JDK 5.0编译环境和开发Java Application及Java Applet进行详细说明和介绍。通过一些具体实验设计,如:基本运算练习、评判学生成绩等级、输出九九乘法表、数组排序、鸽巢原理的模拟、矩阵相乘问题和"速算24"游戏来帮助学生了解和掌握Java的语言基础。
第2部分:面向对象程序设计
从第5章到第8章,详细介绍面向对象的基本概念,以及通过多种形式的实验设计对用面向对象的实际应用展开介绍。在这一部分,实验设计涉及以下内容:对象的创建与使用、静态static 成员与实例成员、变量与对象的作用域和生存期、函数重载与this关键字、子类的派生与关键字super、方法覆盖、多态性与动态绑定、内部类和嵌套类、包package的使用与访问控制、接口的定义与实现。此外,通过对Java的常用工具类,如Math类与基本数据包装类、Date类与Calendar类、向量数组Vector类以及对字符串的常用类的实际应用案例进行介绍,来巩固和加深对面向对象程序设计概念的理解,使得读者对如何用Java实现面向对象程序设计有一个正确认识。
第3部分:GUI编程
从第9章到第11章,介绍了GUI编程。本书从Applet小程序介绍开始,涉及了常用的GUI组件、事件处理,使得GUI编程更加符合HCI(Human Computer Interface),具有良好的人机交互性。本部分侧重讨论了Applet小程序生命周期、Applet参数的设置和提取、图形编程并对Java 2D图形处理做了初步介绍,此外还着重介绍了常用的Swing包的高级图形组件,如JButton、JInternalFrame、JDesktopPane等。
第4部分:高级编程初步
从第12章到第17章,这部分是适应教学内容的扩充而展开。在这一部分,对运用Java 语言实现异常处理、多线程编程、文件处理、网络编程、多媒体技术、访问数据库等方面做了初步介绍,为进一步学习这些技术提供基础和学习的方向。本书对异常处理做了深入的介绍,并从一个具体实验出发,对异常处理的相关概念做了由浅入深的阐述。由于在实际操作中,多线程是一个非常重要的内容,是Java的高级编程的基础,在本部分对多线程从基本概念、线程的实现方法、线程的调度、线程的生命周期等多方面通过多个具有实用意义的实验案例对线程展开详细说明。通过一些具有实践意义的实验设计来帮助学生了解高级编程的基本内容和编写具有实用意义的程序。
为了让读者较好地学习和理解Java语言,本书将每一章分成两个层次:预备知识介绍,实验指导。在预备知识部分,针对学习过程中需要注意的知识点和一些常见的问题做了总结和归纳,帮助读者快速地对关键知识点进行了解和回顾。在实验指导部分,根据对知识点的要求不同,设计了一个或多个具有实用性的实验。通过新颖、循序渐进的实验内容,由浅入深地、详细地介绍实验步骤以及实验指导。其中,每一个实验都是由3~5个练习构成,练习的形式包括程序分析、程序改错、程序补充、编写具有特定要求的程序、问题思考多种方式,立体地指导读者来深入理解和掌握Java语言,克服了传统实验指导中存在实验手段单一的问题,较好地满足了读者上机实验的要求。
为了让读者方便练习,本书提供了相应实验的源代码,可以在清华大学出版社网站上下载。
本书第2、3、4、8、10、11、14、16、17章由陈轶编写,第5、6、7、12、13、15章由姚晓昆编写,第1章和第9章由肖建编写。本书在编写过程中得到了邱桃荣和姚力文的很多指导。本书由林仲达主审,他对本书编写提出许多有益的意见,在此表示衷心的感谢。
由于编者水平所限,书中难免存在错误和不足之处,恳请广大读者对本书提出宝贵意见和建议。
编 者
2006年8月
第1章 Java语言概述和开发环境 1
1.1 预备知识 1
1.2 实验1 JDK 5.0路径设置 6
1.3 实验2 在DOS环境下编译和运行Application和Applet程序 9
1.4 实验3 在JBuilder 2005中配置JDK 5.0编译环境 11
1.5 实验4 在JBuilder 2005中开发Application和Applet程序 14
第2章 基本数据类型和基本运算 26
2.1 预备知识 26
2.2 实验 基本运算练习 30
第3章 控制语句 36
3.1 预备知识 36
3.2 实验1 评判学生成绩等级 37
3.3 实验2 输出九九乘法表 42
第4章 数组 45
4.1 预备知识 45
4.2 实验1 数组排序 47
4.3 实验2 鸽巢原理的模拟 49
4.4 实验3 矩阵相乘问题 51
4.5 实验4 "速算24"游戏 53
第5章 类和对象 55
5.1 预备知识 55
5.2 实验1 对象的创建和使用 58
5.3 实验2 类的静态成员与实例成员 61
5.4 实验3 变量的作用域和this关键字 63
5.5 实验4 方法重载 65
第6章 继承和多态 68
6.1 预备知识 68
6.2 实验1 子类的派生与方法覆盖 71
6.3 实验2 多态性与动态绑定 75
6.4 实验3 嵌套类和内部类 80
第7章 包、接口和常用工具类 83
7.1 预备知识 83
7.2 实验1 包的使用与访问控制 85
7.3 实验2 接口的实现与运用 89
7.4 实验3 Java的常用工具类 93
第8章 字符串 100
8.1 预备知识 100
8.2 实验1 一个String类的简单应用 104
8.3 实验2 单词替换和统计问题 105
8.4 实验3 字符串的比较和查找最长子串 110
8.5 实验4 单词逆向输出问题 114
8.6 实验5 ISBN书号校验问题 115
第9章 Applet小应用程序 117
9.1 预备知识 117
9.2 实验1 Applet生命周期 119
9.3 实验2 Applet的参数提取 123
9.4 实验3 鼠标响应监测 127
第10章 Java的图形处理和Java 2D初步 131
10.1 预备知识 131
10.2 实验1 绘制国际象棋棋盘 136
10.3 实验2 绘制基本三角函数曲线 141
10.4 实验3 绘制金字塔形状 144
第11章 Java的GUI编程初步 150
11.1 预备知识 150
11.2 实验1 按钮有序排列 156
11.3 实验2 密码验证问题 160
11.4 实验3 名片录入管理界面设计 163
11.5 实验4 文字字体设计窗体 167
11.6 实验5 骑士巡游游戏 172
第12章 异常处理 179
12.1 预备知识 179
12.2 实验1 除数为零异常 182
12.3 实验2 创建自己的日期错误异常类 187
12.4 实验3 异常处理的链式搜索 190
第13章 多线程编程 194
13.1 预备知识 194
13.2 实验1 使用Thread类创建4线程程序 197
13.3 实验2 一个实现Runnable接口的小应用程序 199
13.4 实验3 线程同步与资源共享 203
13.5 实验4 wait( )和notify( )挂起与恢复线程 208
第14章 文件和流 212
14.1 预备知识 212
14.2 实验1 文本浏览器 215
14.3 实验2 文本编辑器 220
14.4 实验3 成绩排队 228
14.5 实验4 用RandomAccessFile实现名片记录本 234
14.6 实验5 Zip的压缩和解压缩 243
第15章 网络编程 250
15.1 预备知识 250
15.2 实验1 操纵URL以访问网络资源 252
15.3 实验2 一个网络交互式汇率转换程序 255
15.4 实验3 基于TCP/IP的Socket通信 258
第16章 多媒体技术 281
16.1 预备知识 281
16.2 实验1 文字滚动条 286
16.3 实验2 幻灯片的定制和显示 290
16.4 实验3 水中倒影 296
16.5 实验4 音乐日历 299
16.6 实验5 媒体播放器 306
第17章 数据库编程初步 310
17.1 预备知识 310
17.2 实验1 连接数据库 314
17.3 实验2 基本数据库操作 319
17.4 实验3 多国货币兑换 332