本书作为计算机、软件及相关学科专业的《Java程序设计》课程本科生教材,较为全面系统地介绍Java程序设计中的主要技术内容,既注重讲解基础知识,又注重培养程序员模式设计的思想。内容由浅入深、循序渐进,体现了技术的全面性、系统性和新颖性。
Java程序设计
黄岚 王岩 王康平 编著
Java语言是一种广为使用的面向对象的编程语言,具有“一次编写,到处运行”的特点,其设计思想代表了目前最为先进的高级语言程序设计思想。在计算机技术发展到当前的网络时代,Java已经不仅仅是一种语言,而可以说是一种技术,这个技术涉及网络、编程、嵌入式等各个领域。本书围绕“Java程序设计”教学大纲,深入浅出地介绍了Java语言的基础编程思想。
本书共分为12章,主要包括Java语言的概述、结构化程序设计、面向对象编程思想、图形化用户界面技术、异常处理技术、数组、输入/输出流技术、并发控制技术、数据库操作技术和网络编程等基础内容,以及JDK 6及后续版本中包含的容器、泛型和注解等高级技术。通过阅读本书,读者可以全面掌握面向对象程序设计的基本方法,领会Java语言的基本思想,掌握Java语言技术的相关内容,了解和理解蕴含在Java语言中的软件工程的基本设计思想。
本书可作为高等院校计算机及相关专业本科生Java程序设计的教材,也可作为软件开发工程师与相关技术人员的自学参考书。
根据TIOBE开发语言排行榜2013年4月公布的流行开发语言的排名结果,Java语言再次位居榜首。同时,由于Java语言“一次编写,到处运行”的特点,使其在近年来国内外的软件开发企业中的使用比例排名第一。
Java语言是一种广为使用的面向对象编程语言,其设计思想代表了目前最为先进的高级语言程序设计思想。Java语言是一种具有“简单、面向对象、分布式、解释型、健壮性(鲁棒性)、安全、平台无关、可移植、高性能、多线程和动态执行”等特性的语言,是一种独立于平台的网络编程语言。在计算机技术发展到当前的网络时代,Java已经不仅仅是一种语言,还可以说是一种技术,这种技术涉及网络、编程、嵌入式等各个领域。
本书主要介绍Java语言的概述、结构化编程思想、面向对象编程思想、图形化用户界面技术、异常处理技术、数组、输入/输出流技术、并发控制技术、数据库操作技术和网络编程等基础内容,以及JDK 6及后续版本中包含的容器、泛型和注解等高级技术。通过阅读本书,读者可以全面掌握面向对象程序设计的基本方法,领会Java语言的基本思想,掌握Java语言技术的相关内容,了解和理解蕴含在Java语言中的软件工程的基本设计思想。
本书可作为高等院校计算机及相关专业本科生Java程序设计的教材,也可作为软件开发工程师与相关技术人员的自学参考书。Java程序设计课程的教学以课堂教学为主,通过对Java的基本语法与相关技术的讲解,使学生充分掌握Java语言的基本概念、基本知识、基本内容,了解和掌握Java语言的程序设计手段,在完成学习之后具备较强的程序设计能力。坚持“既讲语言,又讲技术,语言为线,技术为面,相辅相成”的指导思想,保证Java语言的语法和程序设计技术并重,力求在清楚讲解Java语言编程技术的基础上,传授Java编程思想和设计模式。在课堂教学的同时,安排适当数量的实验教学,使学生在学好基本理论和基础知识的同时,能够得到充分的实践机会,以验证课堂讲解的知识,且开拓编程思路,切实锻炼和提高学生程序设计能力。
本书分为12章,主要内容如下:
第1章Java语言基础。计划2学时,可扩展为3学时。介绍Java语言的发展史、特征、运行机制、Java程序的基本结构,以及JDK、Eclipse等Java开发工具的使用。
第2章 结构化程序设计基础。计划3学时,可扩展为4学时。介绍标识符、关键字、数据类型、操作符、表达式、语句和流程控制。
第3章 Java类与对象。计划3学时,可扩展为4学时。介绍Java语言的基本程序设计方法和面向对象程序设计思想。
第4章 类的复用和抽象。计划6学时。介绍类的复用、继承、多态、接口,以及内部类。
第5章 图形化用户界面。计划4学时,可扩展为6学时。介绍Java语言图形用户界面设计方法、图形组件类的使用、图形用户界面的构建与布局管理器,以及事件处理机制。
第6章 异常处理。计划2学时,可扩展为4学时。介绍异常处理的概念和机制,以及异常处理的两种方式。
第7章 对象的容纳。计划4学时,可扩展为6学时。介绍数组、枚举与容器的基本概念,使用学生掌握如何根据实际需求选定不同对象容器。
第8章 I/O流。计划2学时,可扩展为4学时。介绍字节/字符流、输入/输出流、节点流、处理流、标准流,以及其相关类的使用。
第9章 并发控制。计划2学时,可扩展为4学时。介绍线程的生命周期、创建线程的两种方法,以及同步和协作的线程并发控制技术。
第10章 数据库应用。计划2学时,可扩展为3学时。介绍DBMS相关概念、基本SQL语句、JDBC数据库编程技术,以及ORM模式。
第11章 网络应用。计划2学时,可扩展为3学时。介绍网络编程相关类,以及TCP/UDP网络编程技术。
第12章 注解。为可选章节,可扩展1学时。
本课程建议讲授32学时,可扩展为48学时,扩展内容在目录中用*号标注。如有条件可增加16学时的实验教学环节。
为配合课堂教学,编者精心制作了各章的课件,图文并茂地展示了编者的教学思想。书中还列举了丰富的实例程序,这些程序均在JDK和Eclipse环境下测试运行通过。
本书的编写组是由吉林大学多年讲授“Java程序设计”课程的教师,以及从事Java项目开发的教师组成,尤其感谢周柚和杜伟老师等为本教程的选材和编写所付出的辛勤劳动。本书已列为吉林大学本科“十二五”规划教材。
由于作者水平有限,加之时间紧迫,本书内容虽经过多次修改,仍难免存在疏漏和错误之处,恳请广大师生和读者给予批评指正。
编者
2013年5月
计算机\程序设计
Java语言是一种广为使用的面向对象的编程语言,其设计思想代表了目前最为先进的高级语言程序设计思想。Java语言是一种具有“简单、面向对象的、分布式、解释型、健壮性(鲁棒性)、安全、平台无关、可移植、高性能、多线程和动态执行”等特性的语言,是一种独立于平台的网络编程语言。在计算机技术发展到当前的网络时代,Java已经不仅仅是一种语言,而可以说是一种技术,这个技术涉及到网络、编程、嵌入式等各个领域。
本教程主要介绍Java语言的概述、结构化编程思想、面向对象编程思想、图形化用户界面技术、异常处理技术、数组、输入/输出流技术、并发控制技术、数据库操作技术和网络编程等基础内容,以及JDK6以后版本中包含的容器、泛型和注解等高级技术。本课程力求使学生能掌握面向对象程序设计的基本方法,领会Java语言的基本思想,掌握Java语言技术的相关内容,了解和理解蕴含在Java语言中的软件工程的基本设计思想。
苏俊:暂无
前 言
第1章 Java语言基础 1
1.1 Java概述 1
1.1.1 Java起源 1
1.1.2 Java的版本 4
1.1.3 Java语言的特征 5
1.1.4 Java Application与Java Applet 8
1.1.5 Java与C/C++的比较 9
1.1.6 类库与API文档 10
1.2 Java程序结构与运行机制 11
1.2.1 一个简单的Java程序 12
1.2.2 Java运行机制 13
1.3 Java开发环境 14
1.3.1 JDK 14
1.3.2 Eclipse 15
1.3.3 NetBeans 16
1.3.4 其他 16
1.4 Java编程参考 17
1.4.1 Java编程规范 17
1.4.2 Java帮助文档 17
1.4.3 Java相关讨论和社区 18
本章小结 18
习题 18
实验 19
第2章 结构化程序设计基础 20
2.1 标识符、关键字和数据类型 20
2.1.1 标识符 20
2.1.2 关键字 21
2.1.3 数据类型 22
2.1.4 常量 24
2.1.5 变量的声明和初始化 25
2.2 操作符 26
2.2.1 赋值操作符 26
2.2.2 数学操作符 27
2.2.3 关系操作符 28
2.2.4 逻辑操作符 29
2.2.5 位操作符和位移操作符 30
2.2.6 字符串操作符 31
2.2.7 类型转换操作符 31
2.2.8 三元条件操作符 32
2.2.9 Java语言操作符的优先级与结合性 33
2.3 表达式与语句 34
2.3.1 表达式 34
2.3.2 语句与语句块 34
2.4 控制流程 35
2.4.1 顺序结构 35
2.4.2 选择结构 35
2.4.3 循环结构 37
2.4.4 break语句和continue语句 38
2.4.5 return语句 40
本章小结 40
习题 40
实验 41
第3章 Java类与对象 42
3.1 面向对象的基本概念 42
3.2 Java类 44
3.2.1 类的定义 44
3.2.2 变量成员与方法成员 45
3.2.3 访问控制符 48
3.2.4 构造方法 50
3.2.5 终结处理方法 51
3.3 Java对象 52
3.3.1 对象的创建 52
3.3.2 对象初始化 53
3.3.3 成员初始化次序 55
3.3.4 垃圾回收机制 55
3.4 包:库单元 56
3.4.1 命名空间 56
3.4.2 package语句 58
3.4.3 import语句 58
3.5 Java标准类库 59
3.5.1 Java常用包:java.lang包、java.util包 60
3.5.2 Object类 61
3.5.3 System类 62
3.5.4 Math类 63
3.5.5 String类、StringBuffer类和StringBuilder类 64
本章小结 69
习题 69
实验 69
第4章 类的复用和抽象 70
4.1 面向对象基本机制 70
4.2 类的复用 71
4.2.1 合成与聚合 72
4.2.2 继承 74
4.2.3 重写与重载 77
4.2.4 abstract和 final 81
4.2.5 this和super 82
4.3 多态 84
4.3.1 向上转型 85
4.3.2 多态性 86
4.3.3 运行时绑定 87
4.3.4 多态的实现方法 89
4.4 接口 92
4.4.1 接口的定义 92
4.4.2 接口的设计思想 93
4.4.3 接口的应用 95
4.5 内部类 97
4.5.1 内部类的定义和特性 98
4.5.2 其他类型的内部类 100
4.5.3 内部类与外部类的关系 105
本章小结 109
习题 110
实验 111
第5章 图形化用户界面 112
5.1 图形化用户界面概述 112
5.1.1 Swing与AWT 113
5.1.2 GUI组件类层次结构 113
5.1.3 Swing组件 114
5.2 常用组件 115
5.2.1 JFrame窗体 115
5.2.2 JLabel标签 117
5.2.3 JButton按钮 118
5.2.4 JTextField文本框 120
*5.2.5 其他常用组件 122
5.3 布局管理 122
5.3.1 FlowLayout顺序布局 123
5.3.2 BorderLayout边界布局 124
5.3.3 GridLayout网格布局 125
*5.3.4 CardLayout卡片布局 126
*5.3.5 GridBagLayout网格块布局 128
5.4 事件 128
5.4.1 事件处理机制 128
5.4.2 事件类与事件监听接口 131
5.4.3 常用事件处理 134
5.4.4 事件适配器 137
本章小结 139
习题 140
实验 140
第6章 异常处理 141
6.1 异常概述 141
6.1.1 异常与错误 141
6.1.2 标准异常类 143
*6.1.3 常见异常与错误 145
6.2 异常处理方法 146
6.2.1 捕获和处理异常 147
6.2.2 异常的抛出 149
6.2.3 异常传递链 150
6.2.4 异常处理原则 152
6.3 自定义异常 152
6.3.1 自定义异常的创建 152
6.3.2 抛出异常对象 152
6.3.3 自定义异常抛出与捕获 154
*6.3.4 异常转型 156
本章小结 157
习题 157
实验 158
第7章 对象的容纳 159
7.1 数组 159
7.1.1 数组创建、初始化和使用 160
7.1.2 多维数组 160
7.1.3 数组和数组引用 161
7.1.4 数组的工具类Arrays 162
7.1.5 对象比较 163
7.2 枚举 164
7.2.1 枚举的定义 165
7.2.2 枚举的使用 165
7.3 容器 166
7.3.1 List 166
7.3.2 泛型 171
7.3.3 Set 174
7.3.4 Map 181
7.3.5 容器的Collections工具类 186
7.3.6 容器的选择 188
本章小结 189
习题 189
实验 190
第8章 I/O流 191
8.1 流与相关类 191
8.1.1 流的概念 191
8.1.2 字节流及其方法 192
8.1.3 字符流及其方法 196
*8.1.4 节点流与处理流 200
8.2 标准I/O流 204
8.3 文件输入/输出流 206
8.3.1 File类 206
8.3.2 基于字节的文件流 208
8.3.3 基于字符的文件流 210
*8.4 随机访问文件 212
*8.5 压缩 214
本章小结 215
习题 215
实验 215
第9章 并发控制 216
9.1 多任务系统介绍 216
9.2 Java多线程的概念 218
9.2.1 Java语言中多线程的作用 218
9.2.2 线程的创建 219
9.2.3 线程的生命周期 221
9.2.4 线程的优先级 222
9.3 线程之间的协作 223
9.3.1 同步区域 224
9.3.2 协作机制 225
9.3.3 死锁 227
9.4 扩展模型 228
9.4.1 ReentrantLock锁 228
9.4.2 await/signal协作机制 229
本章小结 230
习题 230
实验 231
第10章 数据库应用 232
10.1 数据库基础 232
10.1.1 常用的关系数据库 232
10.1.2 SQL语言简介 234
10.2 JDBC概述 235
10.2.1 JDBC驱动程序接口 235
10.2.2 JDBC应用程序接口 235
10.3 JDBC编程步骤 237
10.4 一个简单的JDBC操作数据库程序 237
10.5 对象关系映射概述 240
10.5.1 ORM的概念 241
10.5.2 ORM技术特点 241
10.5.3 流行的ORM框架简介 241
10.5.4 Hibernate简介 242
本章小结 242
习题 243
实验 243
第11章 网络应用 244
11.1 InetAddress类 245
11.2 ServerSocket类和Socket类 247
11.3 DatagramSocket类 251
本章小结 254
习题 254
实验 254
*第12章 注解 255
12.1 注解的语法 256
12.2 注解的使用 257
12.3 JUnit4中注解的使用 259
本章小结 260
习题 261
参考文献 262