第1章 程序之道 1
1.1 什么是编程语言 1
1.2 什么是程序 3
1.3 什么是调试 3
1.3.1 语法错误 4
1.3.2 运行时错误 4
1.3.3 逻辑错误和语义错误 4
1.3.4 实验性调试 5
1.4 形式语言和自然语言 5
1.5 第一个程序 7
1.6 术语表 8
1.7 练习 10
第2章 变量和类型 12
2.1 更多打印 12
2.2 变量 13
2.3 赋值 14
2.4 打印变量 15
2.5 关键字 16
2.6 运算符 17
2.7 运算符优先级 18
2.8 字符串运算符 19
2.9 组合 19
2.10 术语表 20
2.11 练习 21
第3章 无返回值方法 23
3.1 浮点数 23
3.2 双精度型转整型 24
3.3 数学函数 25
3.4 组合 26
3.5 添加新方法 26
3.6 类和方法 28
3.7 为程序添加多个方法 29
3.8 形参和实参 30
3.9 栈帧图 31
3.10 多参数方法 32
3.11 有返回值的方法 33
3.12 术语表 33
3.13 练习 34
第4章 条件语句和递归 36
4.1 模运算符 36
4.2 条件执行 36
4.3 选择性执行 37
4.4 条件判断链 38
4.5 嵌套条件 39
4.6 返回语句 39
4.7 类型转换 40
4.8 递归 40
4.9 递归方法的栈帧图 42
4.10 术语表 43
4.11 练习 43
第5章 GridWorld(第一部分) 47
5.1 入门 47
5.2 BugRunner 48
5.3 练习 49
第6章 有返回值方法 52
6.1 返回值 52
6.2 程序开发 54
6.3 组合 56
6.4 重载 57
6.5 布尔表达式 58
6.6 逻辑运算符 59
6.7 布尔方法 60
6.8 更多递归 61
6.9 飞跃的信心 63
6.10 另一个例子 64
6.11 术语表 64
6.12 练习 65
第7章 迭代和循环 71
7.1 多次赋值 71
7.2 迭代 72
7.3 while语句 72
7.4 表格 74
7.5 二维表格 76
7.6 封装与泛化 77
7.7 方法 78
7.8 更多的封装 78
7.9 局部变量 79
7.10 更多的泛化 79
7.11 术语表 81
7.12 练习 82
第8章 字符串 85
8.1 调用对象上的方法 85
8.2 字符串长度 86
8.3 遍历 87
8.4 运行时错误 87
8.5 阅读文档 88
8.6 indexOf方法 89
8.7 循环和计数 90
8.8 自增和自减运算符 90
8.9 字符串是不可变的 91
8.10 字符串是不可比较的 91
8.11 术语表 92
8.12 练习 93
第9章 可变对象 100
9.1 Point对象和Rectangle对象 100
9.2 包 100
9.3 Point对象 101
9.4 实例变量 102
9.5 对象作为方法参数 102
9.6 Rectangle对象 103
9.7 对象作为返回类型 104
9.8 对象是可变的 104
9.9 别名 105
9.10 null 106
9.11 垃圾回收 107
9.12 对象类型和原始类型 108
9.13 术语表 109
9.14 练习 109
第10章 GridWorld(第二部分) 114
10.1 Termite类 116
10.2 Langton白蚁 118
10.3 练习 119
第11章 创建对象 122
11.1 类定义与对象类型 122
11.2 Time类 123
11.3 构造函数 124
11.4 更多构造函数 125
11.5 创建新对象 125
11.6 打印对象 126
11.7 操作对象 127
11.8 纯函数 128
11.9 修改器 130
11.10 填值方法 131
11.11 渐进式开发 131
11.12 泛化 133
11.13 算法 133
11.14 术语表 134
11.15 练习 134
第12章 数组 137
12.1 访问数组元素 138
12.2 拷贝数组 139
12.3 for循环 139
12.4 数组和对象 140
12.5 数组长度 141
12.6 随机数 141
12.7 随机数数组 142
12.8 计数 143
12.9 直方图 144
12.10 单次遍历 145
12.11 术语表 145
12.12 练习 146
第13章 对象数组 152
13.1 内容前瞻 152
13.2 Card对象 152
13.3 printCard方法 154
13.4 sameCard方法 155
13.5 compareCard方法 157
13.6 扑克牌数组 158
13.7 printDeck方法 160
13.8 查找 160
13.9 整体与部分 163
13.10 术语表 164
13.11 练习 164
第14章 数组对象 166
14.1 Deck类 166
14.2 洗牌 168
14.3 排序 169
14.4 子集 169
14.5 洗牌和发牌 170
14.6 合并排序法 171
14.7 类变量 173
14.8 术语表 174
14.9 练习 174
第15章 面向对象编程 176
15.1 编程语言和风格 176
1 5.2 对象方法和类方法 177
15.3 toString方法 178
15.4 equals方法 178
15.5 错误 179
15.6 继承 180
15.7 类的层级结构 181
15.8 面向对象设计 182
15.9 术语表 182
15.10 练习 183
第16章 GridWorld(第三部分) 185
16.1 ArrayList 185
16.2 接口 187
16.3 public和private 188
16.4 生命游戏 188
16.5 LifeRunner 189
16.6 LifeRock 190
16.7 同步更新 190
16.8 初始条件 192
16.9 练习 193
附录A图形 194
A.1 Java二维图形 194
A.2 Graphics方法 195
A.3 坐标 196
A.4 颜色 196
A.5 米老鼠 197
A.6 练习 198
附录B Java中的输入和输出 200
B.1 System对象 200
B.2 键盘输入 200
B.3 文件输入 201
B.4 捕获异常 202
附录C 程序开发 203
C.1 策略 203
C.2 失败的开发模式 204
附录D 调试 206
D.1 语法错误 206
D.2 运行时错误 209
D.3 逻辑错误 213