第1章 Java的基本语法 1
1.1 引言 1
1.2 配置Java开发环境 1
1.2.1 布置任务 1
1.2.2 分析任务 1
1.2.3 完成任务 1
1.2.4 Java程序的开发流程 4
1.3 第一个Java程序 4
1.3.1 布置任务 4
1.3.2 分析任务 4
1.3.3 完成任务 4
1.3.4 Java程序范例分析 6
1.4 写一个简单的程序 8
1.4.1 布置任务 8
1.4.2 分析任务 8
1.4.3 完成任务 9
1.4.4 变量 9
1.4.5 数据类型 10
1.4.6 常量 14
1.4.7 运算符、表达式及语句 14
1.5 选择结构语句 17
1.5.1 布置任务 17
1.5.2 分析任务 17
1.5.3 完成任务 18
1.5.4 if语句 18
1.5.5 switch语句 19
1.6 循环结构语句 22
1.6.1 布置任务 22
1.6.2 分析任务 22
1.6.3 完成任务 22
1.6.4 while循环语句 23
1.6.5 for循环语句 23
1.6.6 break和continue语句 24
1.6.7 循环嵌套 26
1.7 Java的数组 27
1.7.1 布置任务 27
1.7.2 分析任务 27
1.7.3 完成任务 27
1.7.4 一维数组 27
1.7.5 二维数组和多维数组 29
1.8 Java的方法 31
1.8.1 方法的定义和调用 31
1.8.2 方法的重载 33
1.8.3 方法的递归调用 35
本章小结 36
习题一 36
第2章 面向对象编程 37
2.1 引言 37
2.2 类的概念 37
2.2.1 布置任务 37
2.2.2 分析任务 38
2.2.3 完成任务 38
2.2.4 分析类的构成 43
2.3 对象的生成与使用 45
2.3.1 布置任务 45
2.3.2 分析任务 45
2.3.3 完成任务 45
2.3.4 生成对象的过程 46
2.3.5 引用 46
2.3.6 使用对象 47
2.4 几个关键字释疑 49
2.4.1 访问控制修饰符 49
2.4.2 static 50
2.4.3 this 52
2.5 String类 52
2.5.1 定义String类变量 52
2.5.2 字符串操作 53
2.5.3 字符串例题 55
2.6 综合任务 56
2.6.1 布置任务 56
2.6.2 分析任务 56
2.6.3 完成任务 57
本章小结 57
习题二 58
第3章 继承与多态 61
3.1 引言 61
3.2 继承 61
3.2.1 布置任务 61
3.2.2 分析任务 62
3.2.3 完成任务 62
3.2.4 继承的本质 64
3.2.5 构造方法链 64
3.3 重载与覆盖 66
3.3.1 布置任务 66
3.3.2 分析任务 66
3.3.3 完成任务 66
3.3.4 重载与覆盖的形成条件 68
3.4 多态 68
3.4.1 布置任务 68
3.4.2 分析任务 69
3.4.3 完成任务 69
3.4.4 动态绑定原理 70
3.4.5 多态 71
3.4.6 instanceof关键字 72
3.5 protected关键字 72
3.6 综合任务 74
3.6.1 布置任务 74
3.6.2 分析任务 74
3.6.3 完成任务 75
本章小结 77
习题三 77
第4章 抽象类与接口 80
4.1 引言 80
4.2 抽象类 80
4.2.1 布置任务 80
4.2.2 分析任务 80
4.2.3 完成任务 81
4.2.4 抽象类的特点 84
4.3 接口 84
4.3.1 布置任务 84
4.3.2 分析任务 85
4.3.3 完成任务 85
4.3.4 接口的特征与作用 87
4.4 抽象类与接口的比较 88
4.5 综合任务 90
4.5.1 布置任务 90
4.5.2 分析任务 90
4.5.3 完成任务 91
本章小结 94
习题四 94
第5章 图形用户界面 98
5.1 引言 98
5.2 显示一个窗体 99
5.2.1 布置任务 99
5.2.2 分析任务 99
5.2.3 完成任务 100
5.2.4 容器类组件 102
5.2.5 布局管理器 104
5.3 加入菜单 106
5.3.1 布置任务 106
5.3.2 分析任务 106
5.3.3 完成任务 107
5.3.4 菜单的相关设置 108
5.4 给游戏区添加按钮 109
5.4.1 布置任务 109
5.4.2 分析任务 110
5.4.3 完成任务 110
5.4.4 JButton 111
5.5 完成功能区布局 113
5.5.1 布置任务 113
5.5.2 分析任务 114
5.5.3 完成任务 114
5.5.4 几个常用组件 118
5.5.5 常用辅助类 119
5.6 绘图 120
5.6.1 布置任务 120
5.6.2 分析任务 120
5.6.3 完成任务 121
5.6.4 在JPanel上绘图 122
5.7 综合任务 124
5.7.1 布置任务 124
5.7.2 分析任务 124
5.7.3 完成任务 125
本章小结 127
习题五 127
第6章 事件驱动 129
6.1 引言 129
6.2 给游戏区按钮添加事件 131
6.2.1 布置任务 131
6.2.2 分析任务 131
6.2.3 完成任务 132
6.2.4 ActionEvent事件 133
6.3 使提示按钮根据鼠标变化 134
6.3.1 布置任务 134
6.3.2 分析任务 134
6.3.3 完成任务 134
6.3.4 MouseEvent事件 135
6.3.5 适配器类 136
6.3.6 一个组件注册多个事件 137
6.4 关闭时确认退出 137
6.4.1 布置任务 137
6.4.2 分析任务 137
6.4.3 完成任务 138
6.4.4 WindowEvent事件 139
6.5 使文本域监听键盘 141
6.5.1 布置任务 141
6.5.2 分析任务 141
6.5.3 完成任务 141
6.5.4 KeyEvent事件 141
6.6 使分数标签不断变换颜色 143
6.6.1 布置任务 143
6.6.2 分析任务 143
6.6.3 完成任务 143
6.6.4 Timer事件 144
6.7 综合任务 148
6.7.1 布置任务 148
6.7.2 分析任务 149
6.7.3 完成任务 149
本章小结 152
习题六 152
第7章 异常处理 154
7.1 引言 154
7.2 异常类 154
7.3 抛出异常 155
7.3.1 布置任务 155
7.3.2 分析任务 155
7.3.3 完成任务 156
7.4 捕获异常 156
7.4.1 布置任务 156
7.4.2 分析任务 156
7.4.3 完成任务 157
本章小结 157
习题七 158
第8章 文件的输入与输出 161
8.1 引言 161
8.2 获取一个文件的属性 162
8.2.1 布置任务 162
8.2.2 分析任务 162
8.2.3 完成任务 162
8.2.4 File类 163
8.3 读写一个图片文件 163
8.3.1 布置任务 163
8.3.2 分析任务 163
8.3.3 完成任务 164
8.3.4 二进制I/O 164
8.4 读写一个文本文件 166
8.4.1 布置任务 166
8.4.2 分析任务 166
8.4.3 完成任务 166
8.4.4 文本I/O 168
8.5 综合任务 171
8.5.1 布置任务 171
8.5.2 分析任务 171
8.5.3 完成任务 171
本章小结 173
习题八 173
第9章 多线程 176
9.1 引言 176
9.2 多线程的应用 176
9.2.1 布置任务 176
9.2.2 分析任务 177
9.2.3 完成任务 177
9.2.4 多线程的建立和启动 178
9.3 线程的调度 179
9.3.1 布置任务 179
9.3.2 分析任务 179
9.3.3 完成任务 180
9.3.4 线程的状态 180
9.3.5 线程的优先级 181
9.4 线程合并 182
9.4.1 布置任务 182
9.4.2 分析任务 183
9.4.3 完成任务 183
9.4.4 join方法 184
9.5 线程同步 184
9.5.1 布置任务 184
9.5.2 分析任务 185
9.5.3 完成任务 185
9.5.4 线程同步 186
9.5.5 wait和notify 188
本章小结 189
习题九 190
第10章 Java集合 192
10.1 引言 192
10.2 Collection接口 193
10.2.1 布置任务 194
10.2.2 分析任务 194
10.2.3 完成任务 194
10.3 List接口 195
10.3.1 布置任务 196
10.3.2 分析任务 196
10.3.3 完成任务 196
10.4 Set接口 199
10.4.1 布置任务 200
10.4.2 分析任务 200
10.4.3 完成任务 200
10.5 集合的遍历 204
10.5.1 布置任务 205
10.5.2 分析任务 205
10.5.3 完成任务 205
10.6 Map接口 206
10.6.1 布置任务 208
10.6.2 分析任务 208
10.6.3 完成任务 208
10.7 集合工具类Collections 210
10.7.1 布置任务 210
10.7.2 分析任务 210
10.7.3 完成任务 210
本章小结 211
习题十 212
第11章 网络通信 213
11.1 引言 213
11.2 TCP方式通信 215
11.2.1 布置任务 215
11.2.2 分析任务 215
11.2.3 完成任务 216
11.3 UDP方式通信 219
11.3.1 布置任务 219
11.3.2 分析任务 220
11.3.3 完成任务 220
本章小结 223
习题十一 224
第12章 项目实战——坦克游戏 226
12.1 引言 226
12.2 画出游戏窗口和坦克 227
12.2.1 布置任务 227
12.2.2 分析任务 227
12.2.3 完成任务 227
12.2.4 知识与经验总结 229
12.3 创建坦克类 230
12.3.1 布置任务 230
12.3.2 分析任务 230
12.3.3 完成任务 231
12.3.4 知识与经验总结 232
12.4 实现GoodTank 233
12.4.1 布置任务 233
12.4.2 分析任务 233
12.4.3 完成任务 233
12.4.4 知识与经验总结 236
12.5 实现BadTank 237
12.5.1 布置任务 237
12.5.2 分析任务 238
12.5.3 完成任务 238
12.5.4 知识与经验总结 240
12.6 添加炮弹类 241
12.6.1 布置任务 241
12.6.2 分析任务 241
12.6.3 完成任务 241
12.6.4 知识与经验总结 244
12.7 发射多颗炮弹 245
12.7.1 布置任务 246
12.7.2 分析任务 246
12.7.3 完成任务 246
12.7.4 知识与经验总结 248
12.8 击毙坦克 249
12.8.1 布置任务 249
12.8.2 分析任务 249
12.8.3 完成任务 249
12.8.4 知识与经验总结 253
12.9 爆炸效果 253
12.9.1 布置任务 253
12.9.2 分析任务 253
12.9.3 完成任务 254
12.9.4 知识与经验总结 256
本章小结 256
附录 坦克游戏源代码 257
参考文献 269