本书基于TOPCARES-CDIO工程化教育理念,以“贪吃蛇游戏”作为案例进行项目驱动,围绕项目开发所需知识进行内容组织,在保证实用性的同时兼顾知识的系统性。全书共分为 5 个单元,前 4 个单元系统论述了Java基础语法(包括变量和表达式、程序控制结构、字符串和数组)、面向对象程序设计的概念(包括特征和原则、类定义语法、继承和多态、抽象类和接口、枚举和泛型等)、Java Swing图形化界面编程技术、Java常用类(包括正则表达式、集合类、Java I/O、数据库访问技术等);第5单元按工程化方式完整实现了“贪吃蛇游戏”的项目,对前面的知识进行了综合应用。本书适合作为高等院校计算机及相关专业本科教材,也可作为相关培训机构的培训教材,以及对 Java开发技术感兴趣人员的参考书。
贺敏,男,副教授,就职于成都东软学院,主持"Java语言程序设计基础”课程改革与创新研究(省部级),主要教授面向对象程序设计等课程
第1单元 Java基础语法
第1章 绪论 3
1.1 Java概述 3
1.1.1 Java的起源和发展 3
1.1.2 Java语言特点 4
1.1.3 Java运行机制 5
1.2 面向对象思想 6
1.3 综合项目概述 6
本章小结 7
习题 7
第2章 结构化基础语法 8
2.1 Java程序组成 8
2.1.1 注释 9
2.1.2 程序入口点 10
2.1.3 程序组织 10
2.1.4 程序错误 11
2.1.5 代码规范 12
2.1.6 使用IDE 12
2.2 数据类型和变量 14
2.2.1 基本类型和引用类型 14
2.2.2 基本类型 14
2.2.3 变量 16
2.2.4 类型转换 17
2.3 表达式和语句 18
2.3.1 算术运算 18
2.3.2 关系运算 19
2.3.3 条件运算 20
2.3.4 赋值运算 21
2.3.5 运算符优先级 21
2.3.6 位运算 22
2.3.7 其他运算 23
本章小结 24
习题 24
第3章 字符串和数组 25
3.1 字符串 25
3.1.1 字符串的创建 25
3.1.2 格式化字符串 26
3.1.3 字符串和基本类型转换 26
3.1.4 字符串常用方法 27
3.2 数组 28
3.2.1 数组的定义 28
3.2.2 数组元素的访问 29
3.2.3 多维数组 29
本章小结 29
习题 29
第4章 程序控制结构 31
4.1 分支结构 31
4.1.1 if-else分支 31
4.1.2 switch分支 34
4.2 循环结构 35
4.2.1 while循环 36
4.2.2 do-while循环 37
4.2.3 for循环 37
4.3 跳转语句 39
4.3.1 break语句 39
4.3.2 continue语句 40
4.4 递归调用 41
4.5 综合应用 42
4.5.1 二分查找算法 42
4.5.2 九宫算术 43
4.5.3 Excel地址转换 45
4.5.4 约瑟夫环 46
4.6 单元项目 48
4.6.1 项目概述 48
4.6.2 设计与实现 48
本章小结 50
习题 51
第2单元 Java面向对象
第5章 面向对象思想及原则 55
5.1 面向对象思想特征 55
5.2 面向对象思想原则 57
5.3 OOP引例 58
本章小结 61
习题 62
第6章 类定义语法 63
6.1 成员访问控制 63
6.2 数据相关成员 64
6.2.1 成员变量 64
6.2.2 构造方法 64
6.2.3 get/set访问器 65
6.3 方法定义 66
6.3.1 方法构成 66
6.3.2 方法重载 69
6.3.3 可变参数 70
6.4 类成员 71
6.4.1 类和对象 71
6.4.2 类成员定义 72
本章小结 74
习题 74
第7章 面向对象高级概念 76
7.1 继承和多态 76
7.1.1 继承 76
7.1.2 对象的类型转换 78
7.1.3 多态 79
7.1.4 Object类 82
7.2 抽象类和接口 89
7.2.1 抽象类 89
7.2.2 接口 90
7.2.3 抽象类和接口的区别 92
7.3 内部类 94
7.3.1 顶层类成员 94
7.3.2 局部内部类 96
7.3.3 内部类与多重继承 97
7.4 枚举类型 98
7.4.1 枚举的定义 98
7.4.2 枚举的实现原理 98
7.4.3 枚举的使用 100
7.5 泛型编程 102
7.5.1 泛型类型 102
7.5.2 类型擦除 104
7.5.3 类型限制 105
7.5.4 泛型方法 107
7.6 类的组织:包 108
7.6.1 包的概念与意义 108
7.6.2 包的定义与使用 108
7.6.3 静态导入 109
7.7 单元项目 109
7.7.1 项目概述 109
7.7.2 设计与实现 110
本章小结 117
习题 117
第3单元 GUI编程
第8章 Java Swing技术 121
8.1 Swing技术简介 121
8.1.1 Swing概述 121
8.1.2 GUI程序的创建 122
8.1.3 窗口坐标体系 124
8.1.4 界面风格 124
8.1.5 模式窗口与非模式窗口 125
8.2 常用容器 126
8.2.1 顶层容器 126
8.2.2 中间容器 129
8.3 常用布局 131
8.3.1 BorderLayout边界布局 131
8.3.2 FlowLayout流式布局 133
8.3.3 CardLayout卡片布局 134
8.3.4 GridLayout网格布局 134
8.3.5 BoxLayout箱式布局 135
8.3.6 GridBagLayout非规则网格布局 137
8.3.7 绝对布局 140
8.4 事件监听和处理 142
8.4.1 事件处理机制 142
8.4.2 键盘事件处理 144
8.4.3 鼠标事件处理 147
8.4.4 窗口事件处理 151
8.5 常用UI元素 153
8.5.1 辅助元素 154
8.5.2 常用组件 156
8.5.3 通用对话框 161
8.5.4 菜单栏 167
8.5.5 系统托盘 169
8.6 自动化任务 171
8.6.1 模拟鼠标键盘 171
8.6.2 屏幕截图 174
本章小结 176
习题 177
第9章 Java绘图技术 178
9.1 界面绘图机制 178
9.1.1 绘制过程 178
9.1.2 双缓冲技术 179
9.1.3 绘图与动画 179
9.2 Graphics的使用 181
9.2.1 几何图形绘制和填充 181
9.2.2 字符串绘制 185
9.2.3 图片绘制 191
9.3 单元项目 194
9.3.1 GUI计算器 194
9.3.2 简易绘图软件 198
本章小结 208
习题 208
第4单元 Java常用技术
第10章 字符串与正则表达式 213
10.1 再论字符串 213
10.1.1 字符串的不变性 213
10.1.2 StringBuilder类 215
10.1.3 字符串其他常用操作 217
10.2 正则表达式 219
10.2.1 正则符号 219
10.2.2 正则验证与匹配 221
10.2.3 支持正则的字符串方法 225
本章小结 227
习题 227
第11章 Java集合框架 229
11.1 集合框架概述 229
11.2 常用集合类 231
11.2.1 ArrayList类 231
11.2.2 LinkedList类 233
11.2.3 HashMap类 236
11.2.4 HashSet类 240
11.3 集合工具类 240
11.3.1 Arrays类 240
11.3.2 Collections类 242
本章小结 242
习题 242
第12章 文件与I/O流 244
12.1 文件 244
12.1.1 创建文件对象 245
12.1.2 操作文件对象 245
12.2 I/O流概述 247
12.2.1 流的概念与分类 247
12.2.2 流的套接 247
12.3 字符流读/写 248
12.3.1 字符阅读流 248
12.3.2 字符书写流 249
12.4 字节流读/写 250
12.4.1 字节输入流 250
12.4.2 字节输出流 252
12.4.3 标准输入/输出 257
12.5 对象序列化 258
12.5.1 序列化技术概述 258
12.5.2 序列化与反序列化 258
12.5.3 序列化的限制 261
12.6 单元项目 262
12.6.1 项目概述 262
12.6.2 设计与实现 263
本章小结 267
习题 267
第13章 数据库访问技术JDBC 269
13.1 JDBC基本概念 269
13.2 JDBC驱动程序类型 270
13.3 搭建数据库环境 271
13.3.1 安装MySQL数据库 271
13.3.2 建立数据表 271
13.3.3 配置JDBC驱动 271
13.3.4 接口Driver和类
DriverManager 272
13.3.5 编写驱动测试程序 273
13.4 数据库访问 274
13.4.1 注册数据库驱动 274
13.4.2 创建连接对象 274
13.4.3 创建SQL对象 275
13.4.4 执行SQL语句 275
13.4.5 访问结果集对象 276
13.5 数据库操作 277
13.5.1 在Swing窗口中显示结果集 278
13.5.2 元数据 280
13.5.3 PreparedStatement对象 281
13.6 事务处理 282
13.6.1 事务 282
13.6.2 保存点 284
本章小结 285
习题 285
第5单元 课程项目实践
第14章 课程项目—贪吃蛇游戏 289
14.1 项目功能描述 289
14.2 项目设计与实现 289
14.2.1 搭建游戏框架 289
14.2.2 GameImage类实现 290
14.2.3 DigitImage类实现 292
14.2.4 GameConfig类实现 292
14.2.5 Node类实现 294
14.2.6 Snake类实现 295
14.2.7 事件机制模拟 297
14.2.8 GameServer类实现 298
14.2.9 PanelInfo类实现 299
14.2.10 PanelGame类实现 301
14.2.11 国际化与本地化 301
14.2.12 MenuGame类实现 302
14.2.13 FrameGame类实现 304
14.2.14 PlayerController类实现 305
14.2.15 GameController类实现 305
14.2.16 GameEntry类实现 307
14.3 课程项目总结 308
附录A 《劝学篇》 309
附录B 编码规范 311
附录C JDK版本特性 314