
本书是一本实践性很强的Java语言基础教程。书中不仅讲解了Java程序设计的基础知识,而且提供了大量实用性很强的编程实例。全书共分11章:Java语言概述、Java语言基础、类与对象、继承与接口、数组与字符串、Java的异常处理机制、输入输出及数据库操作、多线程、Applet程序及应用、图形用户界面设计和Java在数据结构中的应用等。
本书内容实用,结构清晰,实例丰富,可操作性强,可作为高等学校Java程序设计课程的教材,也可作为计算机相关专业的培训和自学教材。
前 言
Java语言是目前使用最为广泛的网络编程语言之一,它具有面向对象、与平台无关、安全、多线程等特点,已被广泛应用于大型企业级分布式应用系统的开发和小型嵌入式设备系统应用程序的开发。在高等教育大众化背景下,为了让广大学生尽快掌握诸如Java等开发语言,迫切要求编写一方面采取灵活多样的形式阐述理论知识,另一方面列举大量应用性很强的实例告诉学生如何在实践中应用语言的教材。
作为一本实践性很强的Java语言基础教材,本书具有以下特点:
(1) 知识点的讲述由浅入深,符合学生学习计算机语言的习惯。
(2) 包含大量具体实例,使学生能够在从具体应用中理解知识的同时,很容易地应用所学的知识解决实际问题。
(3) 专门抽出一章探讨Java在数据结构中的应用,旨在抛砖引玉,为帮助学生解决其他应用问题起到一定的启示作用。
本书共有11章。第1章讲述Java语言发展历程、Java语言的特点以及开发平台和开发过程;第2章介绍Java语言编程的基础语法知识;第3章和第4章讲述Java的面向对象技术,体现了Java作为一种纯粹的面向对象编程语言的编程特点;第5章介绍数组和字符串的特点及使用;第6章介绍Java语言的异常处理机制;第7章介绍Java语言中输入输出流和数据库操作方法;第8章介绍Java语言多线程的含义、特点及实现;第9章介绍Applet程序的概念及其应用;第10章介绍在Java语言中如何进行图形用户界面设计及处理功能的实现。第11章介绍Java在线性表、栈、队列和排序中的应用。
本书由北京印刷学院吴仁群老师编写,在编写过程中得到了清华大学出版社的大力支持。此外,编者还参考了本书“参考文献”中所列举的图书,在此对“参考文献”中所列图书的作者及清华大学出版社表示深深的感谢。
由于时间仓促,书中难免存在一些不足之处,敬请读者批评指正。
编 者
2013年3月
目 录
第1章 Java语言概述 1
1.1 Java语言的特点及相关概念 1
1.1.1 Java语言的特点 1
1.1.2 Java虚拟机(JVM) 3
1.2 Java程序开发 5
1.2.1 运行平台 5
1.2.2 Java程序开发过程 10
1.3 应用实践 12
1.3.1 一个简单的Java Application
程序 12
1.3.2 一个简单的Java Applet
程序 13
1.3.3 联合编译 14
1.3.4 main方法所含类不为主类
时的编译运行 15
1.4 本章小结 16
1.5 思考和练习 17
第2章 Java语言基础 19
2.1 Java程序概况 19
2.1.1 Java程序结构 19
2.1.2 Java注释 20
2.1.3 Java关键字 21
2.1.4 Java标识符 21
2.1.5 变量与常量 22
2.2 基本数据类型 23
2.2.1 基本数据类型概况 23
2.2.2 基本数据类型转换 25
2.3 运算符和表达式 26
2.3.1 算术运算符与算术表达式 26
2.3.2 关系运算符与关系表达式 28
2.3.3 逻辑运算符与逻辑表达式 28
2.3.4 赋值运算符与赋值表达式 28
2.3.5 位运算符 29
2.3.6 条件运算符 31
2.3.7 instanceof运算符 31
2.3.8 一般表达式 31
2.4 Java语句 33
2.4.1 Java语句概述 33
2.4.2 分支语句 33
2.4.3 循环语句 35
2.4.4 跳转语句 36
2.5 应用举例 38
2.5.1 if-else语句和switch语句的
应用 38
2.5.2 for语句、while语句以及
do while语句的应用 39
2.5.3 continue语句和break语句的
应用 40
2.5.4 基本数据类型转换的应用 43
2.5.5 简单用户界面设计的应用 44
2.6 本章小结 45
2.7 思考和练习 46
第3章 类与对象 49
3.1 类 49
3.1.1 类的声明 49
3.1.2 成员变量的声明 51
3.1.3 成员方法 52
3.2 对象 53
3.2.1 对象的创建 53
3.2.2 对象的使用 54
3.2.3 对象的消亡 55
3.3 变量 55
3.3.1 类中变量的分类 55
3.3.2 变量的内存分配 56
3.3.3 实例变量和静态变量的
简单比较 57
3.3.4 变量初始化与赋值 60
3.4 方法 63
3.4.1 方法概述 63
3.4.2 方法分类 63
3.4.3 方法调用中的数据传递 66
3.4.4 三个重要方法 70
3.4.5 方法的递归调用 74
3.5 package和import语句 75
3.5.1 package语句 75
3.5.2 import语句 78
3.6 访问权限 78
3.6.1 类的访问控制 78
3.6.2 类成员的访问控制 82
3.7 类的进一步说明 84
3.7.1 可变类与不可变类 84
3.7.2 泛型类 90
3.8 应用举例 93
3.8.1 自定义向量类的应用举例 93
3.8.2 成员变量内存分配的
应用举例 94
3.8.3 递归应用举例 95
3.8.4 泛型类应用举例 96
3.8.5 综合应用举例 99
3.9 本章小结 103
3.10 思考和练习 103
第4章 继承与接口 107
4.1 继承 107
4.1.1 继承的含义 107
4.1.2 子类的继承性访问控制 108
4.1.3 子类对象的构造过程 111
4.1.4 子类的内存分布 111
4.1.5 子类对象的成员初始化 113
4.1.6 成员变量的隐藏 115
4.1.7 方法的重载与方法的
覆盖 115
4.1.8 this关键字 118
4.1.9 super关键字 121
4.1.10 对象的上下转型 122
4.2 接口 123
4.2.1 abstract类 123
4.2.2 接口的含义 124
4.2.3 接口回调 126
4.2.4 接口与抽象类的异同 127
4.3 特殊类 128
4.3.1 final类 128
4.3.2 内部类 129
4.4 本章小结 130
4.5 思考和练习 130
第5章 数组与字符串 133
5.1 数组概述 133
5.2 字符串概述 137
5.2.1 String类 137
5.2.2 StringBuffer类 140
5.3 应用实例 141
5.3.1 数组应用 141
5.3.2 字符串应用 145
5.3.3 综合应用 149
5.4 本章小结 153
5.5 思考和练习 153
第6章 Java的异常处理机制 157
6.1 异常的含义及分类 157
6.2 异常处理 158
6.2.1 异常处理的基本结构 158
6.2.2 多个catch块 160
6.2.3 finally语句 161
6.3 两种抛出异常的方式 163
6.3.1 throw——直接抛出 163
6.3.2 throws——间接抛出异常
(声明异常) 167
6.4 自定义异常 168
6.5 常见异常 170
6.6 本章小结 171
6.7 思考和练习 171
第7章 输入输出及数据库操作 173
7.1 输入和输出 173
7.1.1 流的含义 173
7.1.2 流的层次结构 174
7.1.3 标准输入输出 175
7.1.4 File类 176
7.1.5 FileInputStream类和
FileOutputStream类 177
7.1.6 DataInputStream类和
DataOutputStream类 180
7.1.7 随机访问文件 182
7.1.8 Reader类和Writer类 184
7.1.9 IOException类的4个
子类 185
7.1.10 应用举例 185
7.2 数据库操作 195
7.2.1 ODBC概述 195
7.2.2 JDBC概述 196
7.2.3 使用JDBC-ODBC技术访问
数据库 198
7.2.4 基本SQL语句 201
7.2.5 数据库操作应用实例 203
7.3 建立数据源的操作 208
7.4 本章小结 210
7.5 思考和练习 210
第8章 多线程 213
8.1 多线程的概念 213
8.2 线程类 214
8.2.1 多线程编程中常用的常量和
方法 214
8.2.2 线程的生命周期 215
8.2.3 创建多线程的方法 216
8.3 资源的协调与同步 221
8.3.1 线程调度模型 221
8.3.2 资源冲突 222
8.3.3 同步方法 223
8.4 线程间通信 226
8.4.1 共享变量和方法封装在
一个类中 226
8.4.2 通过系统方法实现线程
通信 228
8.5 本章小结 232
8.6 思考和练习 232
第9章 Applet程序及应用 233
9.1 Applet程序基础 233
9.1.1 Applet程序概述 233
9.1.2 Applet类 235
9.1.3 Applet程序的生命周期 236
9.1.4 Applet的显示 237
9.1.5 Applet程序和Application
程序结合使用 239
9.2 Applet程序典型应用 242
9.2.1 图形绘制 242
9.2.2 获取图像 245
9.2.3 音频处理 247
9.2.4 动画处理 248
9.3 本章小结 251
9.4 思考和练习 251
第10章 图形用户界面设计 253
10.1 Java AWT和Swing
基础 253
10.1.1 Java的AWT和
Swing概述 253
10.1.2 Java的AWT组件和
Swing组件 254
10.1.3 利用AWT组件和Swing
组件进行程序设计的
基本步骤 256
10.2 常用容器 257
10.2.1 框架 257
10.2.2 面板 260
10.2.3 滚动窗口 261
10.2.4 菜单设计 264
10.2.5 对话框 266
10.3 布局管理器 269
10.3.1 FlowLayout布局 269
10.3.2 BorderLayout布局 270
10.3.3 GridLayout布局 273
10.3.4 CardLayout布局 273
10.3.5 null布局 275
10.4 事件处理 276
10.4.1 委托事件模型 276
10.4.2 键盘事件 280
10.4.3 鼠标事件 282
10.5 常用组件 284
10.5.1 按钮 284
10.5.2 标签 286
10.5.3 文本行 287
10.5.4 文本域 288
10.5.5 复选框 289
10.5.6 单选框 290
10.5.7 选择框 291
10.5.8 列表 292
10.5.9 应用举例 293
10.6 本章小结 301
10.7 思考和练习 301
第11章 Java在数据结构中的
应用 303
11.1 线性表应用篇 303
11.1.1 线性表的基础知识 303
11.1.2 Java在线性表中的
应用 306
11.2 栈应用篇 315
11.2.1 栈的基础知识 315
11.2.2 Java在栈中的应用 317
11.3 队列应用篇 322
11.3.1 队列的基础知识 322
11.3.2 Java在队列中的
应用 323
11.4 排序应用篇 329
11.4.1 排序的基础知识 329
11.4.2 Java在排序中的
应用 331
11.5 本章小结 337
11.6 思考和练习 337
参考文献 339