出版者的话.
译者序
前言
第1篇 程序设计基础
第1章 计算机、程序和Java概述 2
1.1 引言 2
1.2 什么是计算机 2
1.2.1 中央处理器 3
1.2.2 内存 3
1.2.3 存储设备 3
1.2.4 输入输出设备 4
1.2.5 通信设备 5
1.3 程序 5
1.4 操作系统 6
1.4.1 控制和监视系统的活动 7
1.4.2 分配系统资源 7
1.4.3 安排操作的顺序 7
1.5 数系(可选) 7
1.5.1 二进制数与十进制数的转换 8
1.5.2 十六进制数与十进制数的转换 8
1.5.3 二进制数与十六进制数的转换 9
1.6 Java、万维网及其他 10
1.7 Java语言规范、API、JDK和IDE 12
1.8 一个简单的Java程序 12
1.9 创建、编译和运行Java程序 13
1.10 Java程序剖析 15
1.10.1 注释 15
1.10.2 保留字 15
1.10.3 修饰符 15
1.10.4 语句 16
1.10.5 块 16
1.10.6 类 16
1.10.7 方法 16
1.10.8 main方法 16
1.11 用消息对话框显示文本信息 16
第2章 基本数据类型和基本操作 21
2.1 引言 21
2.2 编写简单的程序 21
2.3 标识符 23
2.4 变量 24
2.5 赋值语句和赋值表达式 24
2.6 常量 25
2.7 数值数据类型及其运算 26
2.7.1 算术运算符 27
2.7.2 数值直接量 28
2.7.3 算术表达式 29
2.7.4 简捷赋值运算符 29
2.8 数值类型转换 31
2.9 字符数据类型及其运算 32
2.9.1 统一码和ASCⅡ码 32
2.9.2 特殊字符的转义序列表示 33
2.9.3 字符型char数据与数值型数据之间的转换 33
2.10 字符串类型String 34
2.11 从输入对话框获取输入 35
2.12 实例学习 36
2.12.1 举例:计算贷款支付额 36
2.12.2 举例:整钱兑零 38
2.12.3 举例:显示当前时间 40
2.13 从控制台获取输入 41
2.14 编程风格和文档 43
2.14.1 适当的注释和注释风格 44
2.14.2 命名习惯 44
2.14.3 适当的缩进和空白 44
2.14.4 块的对齐方式 44
2.15 编程错误 45
2.15.1 语法错误 45
2.15.2 运行错误 45
2.15.3 逻辑错误 46
2.16 调试 46
第3章 条件语句 53
3.1 引言 53
3.2 boolean数据类型及其运算 53
3.2.1 条件和无条件布尔运算符 55
3.2.2 举例:决定闰年 56
3.2.3 举例:简单的算术学习工具 56
3.3 if语句 57
3.3.1 简单if语句 57
3.3.2 if...else语句 59
3.3.3 if语句的嵌套 60
3.3.4 举例:税款计算问题 61
3.3.5 举例:改进的算术学习工具 63
3.4 switch语句 64
3.5 条件表达式 66
3.6 格式化控制台输出与字符串 66
3.7 运算符的优先级和结合方向 68
3.8 运算对象的计算顺序 69
第4章 循环 75
4.1 引言 75
4.2 while循环 75
4.2.1 举例:高级算术学习工具 76
4.2.2 使用确认对话框控制循环 77
4.2.3 使用标志值控制循环 78
4.3 do-while循环 79
4.4 for循环 80
4.5 采用哪种循环 81
4.6 嵌套循环 82
4.7 最小化数值误差 83
4.8 实例学习 84
4.8.1 举例:求最大公约数 84
4.8.2 举例:计算销售额 86
4.8.3 举例:显示数字构成的金字塔 88
4.9 关键字break和continue 89
4.9.1 语句标号以及利用标号中止循环(可选) 91
4.9.2 举例:显示素数(可选) 91
第5章 方法 101
5.1 引言 101
5.2 创建方法 101
5.3 调用方法 102
5.4 void方法举例 104
5.5 参数的值传递 105
5.6 重载方法 107
5.7 实例学习:使用方法计算税款 108
5.8 变量的作用域 110
5.9 数学类Math 111
5.9.1 三角函数方法 111
5.9.2 指数函数方法 111
5.9.3 取整方法 112
5.9.4 min、max和abs方法 112
5.9.5 random方法 113
5.10 实例学习:生成随机字符 113
5.11 方法抽象和逐步求精 115
5.11.1 自顶向下的设计 115
5.11.2 自顶向下和自底向上的实现 117
5.11.3 实现细节 118
5.12 包(可选) 121
5.12.1 包的命名习惯 121
5.12.2 包的目录 121
5.12.3 在包中添加类 122
5.12.4 使用包中的类 123
第6章 数组 132
6.1 引言 132
6.2 数组基本知识 132
6.2.1 声明数组变量 132
6.2.2 创建数组 133
6.2.3 数组的大小和默认值 133
6.2.4 数组下标变量 134
6.2.5 数组初始化 134
6.2.6 处理数组 134
6.2.7 foreach循环 135
6.2.8 举例:测试数组 136
6.2.9 举例:划分成绩等级 137
6.3 数组的复制 138
6.4 给方法传递数组参数 139
6.5 从方法中返回数组 142
6.6 变长参数列表(可选) 144
6.7 数组的查找 145
6.7.1 线性查找法 145
6.7.2 二分查找法 146
6.8 数组的排序 147
6.8.1 选择排序 147
6.8.2 插入排序(可选) 149
6.9 Arrays类 150
6.10 二维数组 151
6.10.1 声明二维数组变量和创建二维数组 151
6.10.2 求二维数组的长度 152
6.10.3 锯齿数组 153
6.10.4 处理二维数组 153
6.10.5 举例:多选题评分 154
6.10.6 举例:计算税款(可选) 156
6.11 多维数组(可选) 157
第2篇 面向对象程序设计
第7章 对象和类 168
7.1 引言 168
7.2 定义对象的类 168
7.3 构造方法 170
7.4 通过引用变量来访问对象 170
7.4.1 引用变量和引用类型 170
7.4.2 访问对象的数据和方法 171
7.4.3 举例:声明类并创建对象 171
7.4.4 数据域引用和空值null 174
7.4.5 基本数据类型变量和引用类型变量的区别 ..174
7.5 使用Java类库中的类 175
7.5.1 Date类 175
7.5.2 Random类 176
7.6 静态变量、常量和静态方法 176
7.7 可见性修饰符 180
7.8 数据域封装 181
7.9 不可变对象和类 183
7.10 给方法传递对象参数 184
7.11 变量的作用域 185
7.12 关键字this 186
7.13 对象数组 187
7.14 类的抽象和封装 189
7.15 实例学习:贷款类Loan 189
7.16 实例学习:课程类Course 193
7.17 实例学习:整数栈类StackOfIntegers(可选) 194
7.18 创建窗口(可选 GUI) 196
第8章 字符串和文本I/O 206
8.1 引言 206
8.2 字符串类String 206
8.2.1 构造一个字符串 206
8.2.2 不可变字符串与限定字符串 207
8.2.3 字符串的比较 208
8.2.4 字符串长度以及提取单个字符 209
8.2.5 字符串的连接 210
8.2.6 提取子串 210
8.2.7 字符串的转换 210
8.2.8 获取字符串中的一个字符或子串 211
8.2.9 字符串与数组之间的转换 211
8.2.10 将字符值和数值转换成字符串 212
8.2.11 举例:检测回文串 212
8.3 字符类Character 213
8.4 StringBuilder/StringBuffer类 215
8.4.1 修改缓冲区中的字符串 216
8.4.2 toString、capacity、length、setLength和charAt方法 217
8.4.3 举例:忽略既非字母又非数字的字符,判断回文串 217
8.5 命令行参数 219
8.5.1 向main方法传递字符串 219
8.5.2 举例:处理命令行参数 220
8.6 正则表达式(可选) 221
8.6.1 字符串匹配 221
8.6.2 正则表达式语法 221
8.6.3 字符串的替换和分解 223
8.7 文件类File 224
8.8 文本I/O 226
8.8.1 使用PrintWriter写数据 226
8.8.2 使用Scanner读数据 227
8.8.3 举例:替换文本 228
8.9 容器和布局管理器(可选GUI) 229
第9章 继承和多态 239
9.1 引言 239
9.2 父类和子类 239
9.3 使用关键字super 243
9.3.1 调用父类的构造方法 244
9.3.2 构造方法链 244
9.3.3 调用父类的方法 245
9.4 方法覆盖 245
9.5 覆盖和重载 246
9.6 对象类Object和它的toString()方法 246
9.7 多态性、动态绑定和一般程序设计 247
9.8 对象转换和instanceof运算符 248
9.9 数组线性表ArrayList类 251
9.10 自定义栈类 253
9.11 protected数据和方法 254
9.12 final类、方法和变量 255
9.13 对象类Object中的方法(可选) 256
9.13.1 equals方法 256
9.13.2 hashCode方法 257
9.13.3 finalize方法 257
9.13.4 clone方法 258
9.13.5 getClass方法 258
9.14 数据域和静态方法的隐藏(可选) 259
9.15 初始化模块(可选) 260
9.16 GUI组件的继承(可选 GUI) 262
第10章 抽象类和接口 271
10.1 引言 271
10.2 抽象类 271
10.3 日历类Calendar和公历类GregorianCalendar 275
10.4 接口 276
10.4.1 声明类以实现Comparable接口 277
10.4.2 接口与抽象类 278
10.4.3 创建自定义接口 280
10.4.4 可克隆接口Cloneable(可选) 281
10.5 将基本数据类型值处理为对象 283
10.5.1 数值包装类的构造方法 284
10.5.2 数值包装类的常量 285
10.5.3 转换方法 285
10.5.4 静态方法valueOf 285
10.5.5 将字符串转换为数值的方法 285
10.5.6 BigInteger和BigDecimal类(可选) 286
10.5.7 举例:对一个对象数组排序 286
10.6 基本类型和包装类之间的自动转换 288
10.7 处理GUI事件(可选GUI) 288
第11章 面向对象设计 295
11.1 引言 295
11.2 软件开发过程 295
11.3 分析类之间的关系 296
11.3.1 关联 296
11.3.2 聚集和组合 297
11.3.3 依赖 298
11.3.4 继承 298
11.4 实例学习:面向对象的设计 299
11.5 实例学习:有理数类Rational 304
11.6 类的设计原则 308
11.6.1 内聚性 308
11.6.2 一致性 308
11.6.3 封装性 308
11.6.4 清晰性 308
11.6.5 完整性 309
11.6.6 实例Instance和静态修饰符Static 309
11.6.7 继承和聚集 310
11.6.8 接口和抽象类 310
11.7 用顺序图和状态图模拟动态行为(可选) 310
11.7.1 顺序图 310
11.7.2 状态图 311
11.8 使用Java API在架构基础上编程 311
第3篇 图形用户界面程序设计
第12章 图形用户界面程序设计入门 316
12.1 引言 316
12.2 GUI组件 316
12.3 Java GUI API 317
12.3.1 Swing GUI组件 318
12.3.2 容器类 319
12.3.3 GUI辅助类 319
12.4 框架 319
12.4.1 创建框架 319
12.4.2 在框架中添加组件 320
12.5 布局管理器 321
12.5.1 FlowLayout 322
12.5.2 GridLayout 323
12.5.3 BorderLayout 325
12.5.4 布局管理器的属性 326
12.5.5 validate和doLayout方法(可选) 326
12.6 Color类 327
12.7 Font类 327
12.8 使用面板作子容器 328
12.9 Swing GUI组件的一般特性 329
12.10 图像图标 331
第13章 图形 338
13.1 引言 338
13.2 图形坐标系 338
13.3 Graphics类 339
13.4 paintComponent方法 340
13.5 在面板上绘图 342
13.6 绘制字符串、直线、矩形和椭圆 343
13.7 实例学习:FigurePanel类 344
13.8 绘制弧形 347
13.9 Polygon类以及绘制多边形和折线段 348
13.10 利用FontMetrics类居中显示 350
13.11 实例学习:MessagePanel类 352
13.12 实例学习:StillClock类(可选) 356
13.13 显示图像(可选) 359
13.14 实例学习:ImageViewer类(可选) 361
第14章 事件驱动程序设计 369
14.1 引言 369
14.2 事件和事件源 370
14.3 事件的监听、注册和处理 370
14.3.1 内部类监听器 373
14.3.2 匿名内部类监听器 375
14.3.3 举例:处理简单行为的事件 376
14.3.4 举例:处理窗口事件 377
14.3.5 监听器接口适配器 379
14.4 鼠标事件 380
14.5 键盘事件 382
14.6 使用Timer类的动画(可选) 384
第15章 创建图形用户界面 391
15.1 引言 391
15.2 按钮 391
15.2.1 图标、按下图标和翻转图标 392
15.2.2 对齐方式 393
15.2.3 文本位置 394
15.2.4 举例:使用按钮 394
15.3 复选框 396
15.4 单选按钮 399
15.5 标签 401
15.6 文本域 402
15.7 文本区域 404
15.8 组合框 407
15.9 列表框 410
15.10 滚动条 413
15.11 滑动块 415
15.12 创建多个窗口 417
第16章 applet和多媒体 428
16.1 引言 428
16.2 Applet类 428
16.2.1 init方法 429
16.2.2 start方法 430
16.2.3 stop方法 430
16.2.4 destroy方法 430
16.3 JApplet类 430
16.4 HTML文件和applet标记 431
16.4.1 使用applet浏览工具浏览applet 432
16.4.2 在Web浏览器中浏览applet 432
16.4.3 举例:贷款applet 433
16.5 让applet像应用程序一样运行 436
16.6 向applet传递字符串参数 437
16.7 实例学习:三子棋游戏(可选) 440
16.8 实例学习:跳动的小球(可选) 444
16.9 使用URL类定位资源(可选) 447
16.10 播放音频(可选) 448
16.11 实例学习:多媒体动画(可选) 449
16.12 Java工程的打包和发行(可选) 452
16.12.1 清单文件Manifest 452
16.12.2 运行存档项目 452
第4篇 异常处理、I/O和递归
第17章 异常和断言 462
17.1 引言 462
17.2 异常处理概述 462
17.3 异常和异常类型 464
17.4 理解异常处理 466
17.4.1 声明异常 466
17.4.2 抛出异常 466
17.4.3 捕获异常 467
17.4.4 从异常获取信息 468
17.4.5 举例:声明、抛出和捕获异常 470
17.5 finally子句 472
17.6 何时使用异常 473
17.7 重新抛出异常 473
17.8 链式异常(可选) 473
17.9 创建自定义异常类(可选) 474
17.10 断言(可选) 475
17.10.1 声明断言 475
17.10.2 运行带断言的程序 476
17.10.3 使用异常处理或断言 476
第18章 二进制I/O 485
18.1 引言 485
18.2 在Java中如何处理输入输出 485
18.3 文本I/O与二进制I/O 486
18.4 二进制I/O类 487
18.4.1 FileInputStream类和FileOutputStream类 488
18.4.2 FilterInputStream类和FilterOutputStream类 490
18.4.3 DataInputStream类和DataOutputStream类 490
18.4.4 BufferedInputStream类和BufferedOutputStream类 492
18.5 实例学习:文件复制 493
18.6 对象输入输出 495
18.6.1 可序列化接口Serializable 497
18.6.2 序列化数组 497
18.7 随机读写文件(可选) 498
18.8 实例学习:地址簿(可选) 501
第19章 递归 511
19.1 引言 511
19.2 举例:阶乘 511
19.3 举例:斐波那契数 513
19.4 使用递归解决问题 515
19.5 递归辅助方法 516
19.5.1 选择排序 516
19.5.2 二分查找 517
19.6 汉诺塔问题 517
19.7 分形 520
19.8 递归与迭代 522
附录A Java关键字 528
附录B ASCII码字符集 529
附录C 运算符优先级表 530
附录D Java修饰符 531
附录E 特殊浮点值 532
附录F 位运算符 533
· · · · · · (
收起)