译者序 1
前言 1
致学生 1
第1章 对象和类 1
1.1 对象无处不在 1
1.2 软件中的对象 1
1.3 软件类剖析 4
1.4 对象和类的区别 5
1.5 编辑、编译和运行 6
1.6 软件工程简介 8
1.7 面向对象软件开发示例 9
术语 10
练习 11
编程练习 12
第2章 Java对象 13
2.1 语法图 13
2.2 方法调用 15
2.3 指令序列 16
2.4 构造对象和对象赋值 16
2.5 编码模式和交换 19
2.6 集成到一个Java类中 20
2.7 契约式编程 23
2.8 注释 27
2.9 观察执行 29
2.10 定义算法—分而治之 30
2.11 选择标示符 34
2.12 第2个细化例子 36
2.13 调用有参数的方法 39
术语 41
练习 42
编程练习 45
第3章 设计与实现 47
3.1 标准类简介 47
3.2 导入声明 49
3.3 javax.swing.JFrame 51
3.4 java.awt.Label 54
3.5 非标准类(Rectangle、Oval和Line) 57
3.6 原型方法 62
3.7 调试:将代码注释掉和使用System.out.println 65
术语 69
练习 70
编程练习 72
第4章 方法 74
4.1 为什么需要子程序 74
4.2 私有无参数方法 76
4.3 使用参数 79
4.4 局部变量 84
4.5 非void方法 86
4.6 标准非void方法 89
4.7 事件处理简介 90
4.8 后置条件记法 94
4.9 java.awt.Container—设计例子 96
术语 101
练习 101
编程练习 104
第5章 基本类型数据 107
5.1 基本类型 107
5.2 基本整数数据类型 108
5.3 基本类型与引用类型的区别 112
5.4 实数(float和double类型) 113
5.5 再谈System.out.println 115
5.6 混合类型数值表达式 115
5.7 基本类型方法(包括Math) 117
5.8 常量(final) 119
5.9 数值表达式模式 120
5.10 char数据类型 121
5.11 设计示例—动态直方图 123
术语 126
练习 126
编程练习 128
第6章 供应者类 129
6.1 软件中的客户和供应者 129
6.2 另一个客户 130
6.3 供应者 134
6.4 作用域和生命期 138
6.5 类接口设计原则 141
6.6 读写访问分离 146
6.7 方法重载 148
6.8 this 149
6.9 枚举数据类型 151
6.10 String 153
6.11 JTextField 156
术语 161
练习 162
编程练习 164
第7章 逻辑和选择 167
7.1 if指令 167
7.2 关系表达式 171
7.3 布尔表达式 173
7.4 条件计算 177
7.5 谓词 177
7.6 蕴涵的使用 180
7.7 嵌套if指令 181
7.8 多路选择 184
7.9 switch指令 186
7.10 软件测试 189
7.11 逻辑和程序设计 190
7.12 再谈断言 192
术语 198
练习 198
编程练习 201
第8章 继承 204
8.1 扩展 204
8.2 类关系:contains_a和is_a 208
8.3 特殊化和扩展—javax.swing.JComponent 213
8.4 保护作用域 218
8.5 继承用于事件处理 220
8.6 通过继承EventTimer实现动画 226
8.7 有滑动条和文本域的设计示例 229
8.8 小结 235
术语 236
练习 237
编程练习 240
第9章 多态 243
9.1 继承层次体系 243
9.2 类型相容性 246
9.3 子类型多态 249
9.4 抽象类 256
9.5 Object类 262
9.6 内容相等性和身份相等性 263
9.7 使用接口 264
术语 270
练习 270
编程练习 273
第10章 重复 277
10.1 while循环 277
10.2 计数循环 282
10.3 卫哨循环 284
10.4 循环设计注意事项 286
10.5 嵌套循环 288
10.6 do循环 290
10.7 for循环 292
10.8 循环不变式 295
10.9 循环和事件处理 299
10.10 测试和循环 299
术语 301
练习 301
编程练习 305
第11章 容器 307
11.1 容器 307
11.2 泛型容器 308
11.3 包装器类和自动装箱/拆箱 312
11.4 列表 314
11.5 列表遍历 318
11.6 线性搜索 323
11.7 插入排序 325
11.8 泛型排序 328
术语 330
练习 330
编程练习 333
第12章 数组介绍 336
12.1 一维数组 336
12.2 避免索引越界 341
12.3 利用for循环顺序处理 342
12.4 将数组作为聚集处理 347
12.5 表 350
12.6 有引用元素的数组 352
12.7 数组和对象 353
12.8 排序—选择排序 354
12.9 二维数组 357
术语 360
练习 360
编程练习 363
第13章 文件输入和输出 367
13.1 文件 367
13.2 Java File类 369
13.3 I/O异常 371
13.4 输入和输出 373
13.5 DataInputStream和DataOutputStream 377
13.6 文本文件 381
13.7 终端型I/O 386
13.8 持久对象 387
13.9 JFileChooser 388
术语 391
练习 391
编程练习 394
第14章 递归 395
14.1 递归定义 395
14.2 从递归定义到方法 399
14.3 递归方法 401
14.4 递归执行 402
14.5 递归和和重复 404
14.6 更复杂的递归 405
术语 409
练习 409
编程练习 410
第15章 应用和Applet 413
15.1 static变量 413
15.2 static方法 418
15.3 应用 419
15.4 Applet 421
15.5 创建包 425
15.6 使用包 428
术语 429
练习 429