第1章 对象和类 1
1.1 对象随处可见 1
1.2 软件中的对象 2
1.3 软件类剖析 4
1.4 对象与类的区别 5
1.5 编辑、编译和运行 6
1.6 软件工程入门 10
1.7 面向对象软件开发示例 11
Java代码检查 13
练习 13
编程练习 14
2.1 句法图 15
第2章 Java对象入门 15
2.2 方法调用 17
2.3 指令序列 19
2.4 对象构建和赋值 19
2.5 交换 22
2.6 Java类中的综合应用 24
2.7 编程约定 27
2.8 注释 32
Java代码检查 34
练习 34
编程练习 37
第3章 设计与实现入门 38
3.1 自上而下的设计:逐步求精算法 38
3.2 选择标识符 43
3.3 第2个设计示例 45
3.4 GUI软件库 48
3.5 有参方法调用 51
3.6 导入声明 58
3.7 原型开发 60
3.8 调试:System.out.println 63
3.9 小结 65
Java代码检查 65
练习 66
编程练习 69
第4章 方法 71
4.1 子程序的必要性 71
4.2 私有无参方法 74
4.3 使用参数 78
4.4 局部变量 83
4.5 非空方法 85
4.6 this 87
4.7 事件处理入门 88
4.8 后置条件表示法 93
4.9 使用AView的设计示例 95
Java代码检查 100
练习 100
编程练习 105
第5章 数字处理 107
5.1 基本类型 107
5.2 基本整数数据类型 108
5.3 基本类型和引用类型的区别 112
5.4 实数(float和double类型) 114
5.5 System.out.println深入说明 116
5.6 混合型数字表达式 116
5.7 基本方法(包括Math) 119
5.8 常量(final) 121
5.9 数字表达式模式 123
5.10 设计示例:动态直方图 124
Java代码检查 128
练习 128
编程练习 130
6.1 软件中的客户和提供者 132
第6章 提供者类 132
6.2 另一个客户 134
6.3 提供者 138
6.4 作用域和生存期 144
6.5 类接口设计原则 148
6.6 分离读写访问 154
6.7 方法重载 156
6.8 char数据类型 158
6.9 字符串 161
6.10 ALabel(可选的) 165
Java代码检查 170
练习 171
编程练习 174
7.1 if指令 177
第7章 逻辑和选择 177
7.2 关系表达式 182
7.3 布尔表达式 185
7.4 条件求值 190
7.5 谓词 190
7.6 嵌套if指令 192
7.7 多路选择 195
7.8 switch指令 198
7.9 软件测试 202
7.10 逻辑和编程(选学) 204
7.11 深入研究断言(选学) 206
Java代码检查 209
练习 209
编程练习 213
第8章 继承 216
8.1 extends 216
8.2 类关系:contains_a和is_a 221
8.3 特殊化和扩展 228
8.4 protected作用域 231
8.5 事件处理的继承 235
8.6 继承EventTimer做动画(可选) 242
8.7 设计带有滚动条和文本字段的示例(可选) 245
8.8 小结 253
Java代码检查 254
练习 255
编程练习 260
9.1 继承层次 263
第9章 继承层次和多态 263
9.2 类型相符 266
9.3 子类型多态 270
9.4 抽象类 278
9.5 Object类 286
9.6 内容相等和本体相等 288
Java代码检查 289
练习 290
编程练习 293
第10章 循环 298
10.1 while循环 298
10.2 计数循环 304
10.3 标记循环 306
10.4 循环设计注意事项 310
10.5 嵌套循环 311
10.6 do循环 315
10.7 循环不变量 318
10.8 循环和事件处理 323
10.9 测试和循环 323
Java代码检查 324
练习 324
编程练习 329
第11章 容器 332
11.1 对象的容器 332
11.2 通用容器 334
11.3 类型安全、强制转换和instanceof 336
11.4 包装类 339
11.5 表 342
11.6 表遍历 348
11.7 线性搜索 350
11.8 插入排序 352
Java代码检查 356
练习 356
编程练习 359
第12章 数组入门 362
12.1 一维数组 362
12.2 下标范围 369
12.3 for循环:顺序处理 370
12.4 将数组视为集合 375
12.5 表格 378
12.6 对象的数组 381
12.7 数组和对象 383
12.8 选择排序 384
12.9 二维数组 387
Java代码检查 390
练习 391
编程练习 395
第13章 文件输入与输出 399
13.1 文件 400
13.2 Java文件类 401
13.3 I/O异常 404
13.4 输入和输出 407
13.5 DatalnputStream和DataOutputStream 412
13.6 文本文件 417
13.7 终端方式的I/O(可选) 421
13.8 持久对象(可选) 423
13.9 JFileChooser(可选) 425
Java代码检查 427
练习 428
编程练习 431
第14章 递归 432
14.1 递归定义 432
14.2 从递归定义到方法 437
14.3 递归方法 439
14.4 递归执行 441
14.5 递归和循环 446
14.6 复杂的递归 448
Java代码检查 451
练习 452
编程练习 453
第15章 库问题:包、静态、小程序和委托 456
15.1 创建包 457
15.2 使用包 460
15.3 静态方法 462
15.4 静态变量 463
15.5 应用程序和小程序 468
15.6 事件委托(可选) 475
Java代码检查 480
练习 481
附录A 计算系统入门 484
A.1 什么是计算机 484
A.2 模拟和数字 486
A.3 存储数据的方式 488
A.4 二进制数 490
A.5 计算机的通信方式 494
A.6 计算机叫做“系统”的原因 496
附录B Java句法图 498
附录C Java运算符的优先级 515
附录D swing、awt和aLibrary 517
D.1 awt和swing的背景知识 517
D.2 转换公共特性 517
D.3 JFrame代替AWindow 520
D.4 JLable代替ALable 523
D.5 JComponent代替AView、AOval、ARectangle和ARoundRectangle 524
D.6 JComponent代替ALine 528
D.7 JComponent代替AImage 528
D.8 鼠标和键盘事件处理 529
D.9 JButton代替AButton 532
D.10 JScrollBar代替AScrollbar 533
D.11 TextArea代替ATextArea 534
D.12 JTextField代替ATextField 535
附录E UML符号 538
E.1 类图 538
E.2 对象图 542
E.3 活动图 544