第1章 成为程序员 1
1.1 选择编程语言 2
1.2 告诉计算机做什么 3
1.3 程序的工作原理 5
1.4 为什么程序不能正常工作 6
1.5 选择一个Java编程工具 6
1.6 安装Java开发工具 7
1.7 总结 7
1.8 问与答 8
1.9 测验 8
1.9.1 问题 8
1.9.2 答案 9
1.10 练习 9
第2章 编写第一个程序 10
2.1 编写程序所需的工具 10
2.2 创建Saluton程序 11
2.3 开始输入程序 11
2.3.1 class语句 13
2.3.2 main语句的作用 13
2.3.3 大括号 13
2.4 在变量中存储信息 14
2.5 保存编写好的程序 15
2.6 将程序编译为class文件 16
2.7 修复错误 16
2.8 运行Java程序 17
2.9 总结 18
2.10 问与答 18
2.11 测验 19
2.11.1 问题 19
2.11.2 答案 20
2.12 练习 20
第3章 Java之旅 21
3.1 第一站:Oracle 21
3.2 去Java学校 24
3.3 在JavaWorld用午餐 25
3.4 在NASA仰望天穹 27
3.5 回归正题 28
3.6 到SourceForge去问路 29
3.7 在手机上运行Java 30
3.8 总结 31
3.9 问与答 31
3.10 测验 31
3.10.1 问题 31
3.10.2 答案 32
3.11 练习 32
第4章 理解Java程序是如何工作的 33
4.1 创建应用程序 33
4.2 向应用程序传递参数 35
4.3 Java类库 36
4.4 总结 40
4.5 问与答 40
4.6 测验 40
4.6.1 问题 40
4.6.2 答案 41
4.7 练习 41
第5章 在程序中存储和修改信息 42
5.1 语句和表达式 42
5.2 指定变量类型 43
5.2.1 整数和浮点数 43
5.2.2 字符和字符串 44
5.2.3 其他数值类型的变量 45
5.2.4 布尔变量 46
5.3 给变量命名 46
5.4 在变量中存储信息 47
5.5 运算符 48
5.5.1 变量的递增与递减 49
5.5.2 运算符优先级 50
5.6 使用表达式 51
5.7 总结 53
5.8 问与答 53
5.9 测验 54
5.9.1 问题 54
5.9.2 答案 54
5.10 练习 54
第6章 使用字符串来交流 55
6.1 在字符串中存储文本 55
6.2 在程序中显示字符串 56
6.3 在字符串中使用特殊字符 57
6.4 拼接字符串 57
6.5 将其他变量用于字符串中 58
6.6 字符串的高级处理 59
6.6.1 比较两个字符串 59
6.6.2 确定字符串的长度 60
6.6.3 改变字符串的大小写 60
6.6.4 查找字符串 60
6.7 导演及演员名单 61
6.8 总结 62
6.9 问与答 62
6.10 测验 63
6.10.1 问题 63
6.10.2 答案 63
6.11 练习 64
第7章 使用条件测试进行判断 65
7.1 if语句 66
7.1.1 小于和大于的比较 66
7.1.2 相等和不等 67
7.1.3 使用块语句组织程序 67
7.2 if-else语句 68
7.3 switch语句 69
7.4 三元运算符 71
7.5 观察时钟 71
7.6 总结 74
7.7 问与答 75
7.8 测验 75
7.8.1 问题 75
7.8.2 答案 76
7.9 练习 76
第8章 使用循环重复执行操作 77
8.1 for循环 77
8.2 while循环 79
8.3 do-while循环 80
8.4 退出循环 81
8.5 给循环命名 82
8.6 测试计算机的运行速度 83
8.7 总结 84
8.8 问与答 84
8.9 测验 85
8.9.1 问题 85
8.9.2 答案 85
8.10 练习 85
第9章 使用数组存储信息 86
9.1 创建数组 87
9.2 使用数组 88
9.3 多维数组 90
9.4 对数组进行排序 90
9.5 对字符串中的字符计数 91
9.6 总结 94
9.7 问与答 94
9.8 测验 95
9.8.1 问题 95
9.8.2 答案 95
9.9 练习 95
第10章 创建第一个对象 96
10.1 面向对象编程的工作原理 96
10.2 对象示例 97
10.3 什么是对象 98
10.4 理解继承 99
10.5 建立继承层次 100
10.6 转换对象和简单变量 100
10.6.1 简单变量的类型转换 101
10.6.2 对象类型转换 102
10.6.3 在简单变量和对象之间进行转换 102
10.6.4 自动封装和拆封 104
10.7 创建对象 104
10.8 总结 107
10.9 问与答 107
10.10 测验 107
10.10.1 问题 107
10.10.2 答案 108
10.11 练习 108
第11章 描述对象 109
11.1 创建变量 109
11.2 创建类变量 111
11.3 用方法来创建行为 112
11.3.1 声明方法 112
11.3.2 参数不同的类似方法 113
11.3.3 构造函数 114
11.3.4 类方法 115
11.3.5 方法中变量的作用域 115
11.4 将一个类放在另一个类中 116
11.5 使用关键字this 117
11.6 使用类方法和类变量 118
11.7 总结 119
11.8 问与答 120
11.9 测验 120
11.9.1 问题 120
11.9.2 答案 121
11.10 练习 121
第12章 充分利用现有对象 122
12.1 继承的威力 122
12.1.1 继承行为和属性 123
12.1.2 覆盖方法 123
12.2 建立继承 124
12.3 使用现有的对象 125
12.4 将相同类的对象存储到数组列表中 126
12.5 创建子类 128
12.6 总结 130
12.7 问与答 131
12.8 测验 131
12.8.1 问题 131
12.8.2 答案 131
12.9 练习 132
第13章 创建简单的用户界面 133
13.1 Swing和抽象窗口工具包 134
13.2 使用组件 134
13.2.1 窗口和框架 134
13.2.2 按钮 138
13.2.3 标签和文本框 139
13.2.4 复选框 140
13.2.5 组合框 141
13.2.6 文本区域 142
13.2.7 面板 143
13.3 创建自己的组件 144
13.4 总结 147
13.5 问与答 147
13.6 测验 148
13.6.1 问题 148
13.6.2 答案 148
13.7 练习 149
第14章 用户界面的布局 150
14.1 使用布局管理器 150
14.1.1 GridLayout管理器 152
14.1.2 BorderLayout管理器 153
14.1.3 BoxLayout管理器 153
14.1.4 使用Insets将组件隔开 154
14.2 应用程序的界面布局 155
14.3 总结 159
14.4 问与答 159
14.5 测验 159
14.5.1 问题 159
14.5.2 答案 160
14.6 练习 160
第15章 响应用户输入 161
15.1 让程序监听 161
15.2 设置要监听的组件 162
15.3 处理用户事件 162
15.3.1 复选框和组合框事件 163
15.3.2 键盘事件 164
15.3.3 启用和禁用组件 165
15.4 完善图形应用程序 166
15.5 总结 173
15.6 问与答 173
15.7 测验 174
15.7.1 问题 174
15.7.2 答案 174
15.8 练习 174
第16章 创建复杂的用户界面 175
16.1 滑块 175
16.2 变更监听器 176
16.3 使用图像图标和工具栏 179
16.4 表 182
16.5 总结 186
16.6 问与答 186
16.7 测验 186
16.7.1 问题 186
16.7.2 答案 186
16.8 练习 187
第17章 在数据结构中存储对象 188
17.1 数组列表 189
17.2 哈希映射 193
17.3 总结 196
17.4 问与答 197
17.5 测验 197
17.5.1 问题 197
17.5.2 答案 197
17.6 练习 198
第18章 处理程序中的错误 199
18.1 异常 200
18.1.1 在try--catch块中捕获异常 200
18.1.2 捕获多种不同的异常 203
18.1.3 出现异常后进行处理 204
18.1.4 抛出异常 205
18.1.5 忽略异常 206
18.1.6 不需要捕获的异常 207
18.2 抛出和捕获异常 207
18.3 总结 209
18.4 问与答 210
18.5 测验 210
18.5.1 问题 210
18.5.2 答案 210
18.6 练习 211
第19章 创建线程程序 212
19.1 线程 212
19.1.1 降低程序的速度 213
19.1.2 创建线程 213
19.2 使用线程 216
19.2.1 声明类 217
19.2.2 创建变量 217
19.3 构造函数 217
19.4 在创建URL时捕获错误 218
19.5 启动线程 218
19.6 处理鼠标单击 220
19.7 循环显示链接 220
19.8 总结 223
19.9 问与答 223
19.10 测验 223
19.10.1 问题 223
19.10.2 答案 224
19.11 练习 224
第20章 使用内部类和闭包 225
20.1 内部类 226
20.2 闭包 231
20.3 总结 235
20.4 问与答 236
20.5 测验 236
20.5.1 问题 236
20.5.2 答案 236
20.6 练习 237
第21章 读写文件 238
21.1 流 238
21.1.1 文件 239
21.1.2 从流中读取数据 240
21.1.3 缓冲输入流 242
21.2 将数据写入流中 244
21.3 读写配置属性 246
21.4 总结 248
21.5 问与答 249
21.6 测验 249
21.6.1 问题 249
21.6.2 答案 249
21.7 练习 250
第22章 利用JAX-WS开发Web服务 251
22.1 定义服务端点接口 251
22.2 创建服务实现Bean 253
22.3 发布Web服务 254
22.4 使用Web服务描述语言文件 255
22.5 创建Web服务客户端 257
22.6 总结 259
22.7 问与答 259
22.8 测验 260
22.8.1 问题 260
22.8.2 答案 260
22.9 练习 261
第23章 创建Java2D图形 262
23.1 使用Font类 262
23.2 使用Color类 263
23.3 创建自定义颜色 264
23.4 绘制直线和形状 264
23.4.1 绘制直线 265
23.4.2 绘制矩形 265
23.4.3 绘制椭圆和圆 266
23.4.4 绘制弧线 266
23.5 绘制饼图 267
23.6 总结 273
23.7 问与答 273
23.8 测验 274
23.8.1 问题 274
23.8.2 答案 274
23.9 练习 274
第24章 编写Android app 275
24.1 Android简介 275
24.2 创建Android app 277
24.2.1 剖析一个Android新项目 278
24.2.2 创建app 279
24.2.3 安装Android模拟器 280
24.2.4 创建调试配置 282
24.3 运行app 283
24.4 设计真实的app 285
24.4.1 组织资源 285
24.4.2 配置app的Manifest文件 288
24.4.3 设计用户界面 288
24.4.4 编写Java代码 291
24.5 总结 295
24.6 问与答 295
24.7 测验 296
24.7.1 问题 296
24.7.2 答案 296
24.8 练习 296
附录A 使用NetBeans IDE 297
A.1 安装NetBeans 297
A.2 创建新项目 298
A.3 创建新的Java类 299
A.4 运行应用程序 301
A.5 修复错误 301
附录B Java资源 303
B.1 可以考虑的其他书 303
B.2 Oracle公司的Java官方站点 304
B.3 其他Java站点 304
B.3.1 本书英文版的配套网站 304
B.3.2 Workbench 304
B.3.3 Slashdot 305
B.3.4 其他Java博客 305
B.3.5 InformIT 305
B.3.6 Stack Overflow 305
B.3.7 JavaWorld杂志 305
B.3.8 Developer.com’s Java Directory 305
B.3.9 Twitter 306
附录C 本书站点 307
附录D 设置Android开发环境 308
D.1 起步 308
D.2 安装Eclipse 308
D.3 安装在Eclipse中使用的Android插件 309
D.4 设置你的手机 310