Java程序设计与数据结构第4版约翰刘易斯计算机pdf下载pdf下载

Java程序设计与数据结构第4版约翰刘易斯计算机百度网盘pdf下载

作者:
简介:本篇主要提供Java程序设计与数据结构第4版约翰刘易斯计算机pdf下载
出版社:南京中译图书专营店
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

Java Foundations is a comprehensive textbook for introductory programming sequences. The versatile layout supports a two-or three-semester schedule and introduces you to the world of programming—from the basics, to complex data structures.
John Lewis 教授是美国知名的编程语言教材的作者,撰写了多部有关Java编程导论、Java软件解决方案、Java数据结构以及计算机应用的相关教材。Lewis教授从美国弗吉尼亚大学获得了博士学位并一直在该校任教
本书是计算机核心课程系列的经典教材,内容丰富,总体上可分为两部分:部分是Java编程基础;第二部分是复杂数据结构的Java设计与实现,专为两学期的课程而设计。
本书语言简洁、分析透彻,讲解清晰,借鉴了行业的Java软件解决方案,给出了学习Java的丰富案例,引领读者从Java入门到精通,在学习Java基础知识后,可设计实现复杂的数据结构。
第1章 绪论 1
1.1 Java程序设计语言 1
1.1.1 Java程序 2
1.1.2 注释 4
1.1.3 标识符与保留字 5
1.1.4 空白符 7
1.2 程序开发 8
1.2.1 程序设计语言分类 9
1.2.2 编辑器、编译器和
解释器 10
1.2.3 开发环境 12
1.2.4 语法与语义 12
1.2.5 13
1.3 问题求解 14
1.4 软件开发活动 15
1.5 面向对象程序设计 16
1.5.1 面向对象软件原则 16
重要概念总结 19
术语总结 19
自测题 20
练习题 21
程序设计项目 21
自测题答案 23
第2章 数据与表达式 24
2.1 字符串 24
2.1.1 print和println方法 24
2.1.2 字符串连接 26
2.1.3 转义字符 28
2.2 变量与赋值 30
2.2.1 变量 30
2.2.2 赋值语句 32
2.2.3 常量 33
2.3 基本数据类型 34
2.3.1 整数与浮点数 34
2.3.2 字符型 35
2.3.3 布尔型 37
2.4 表达式 37
2.4.1 算术运算符 37
2.4.2 运算符优先级 38
2.4.3 自增运算符与自减
运算符 41
2.4.4 赋值运算符 42
2.5 数据转换 43
2.5.1 转换技术 44
2.6 读取输入数据 45
2.6.1 Scanner类 45
重要概念总结 48
术语总结 48
自测题 49
练习题 50
程序设计项目 51
自测题答案 52
第3章 使用类和对象 54
3.1 创建对象 54
3.1.1 别名 56
3.2 String类 57
3.3 包 60
3.3.1 import声明 61
3.4 Random类 62
3.5 Math类 64
3.6 格式化输出 67
3.6.1 NumberFormat类 67
3.6.2 DecimalFormat类 68
3.6.3 printf方法 70
3.7 枚举类型 70
3.8 包装类 72
3.8.1 自动装箱 74
重要概念总结 75
术语总结 75
自测题 75
练习题 76
程序设计项目 77
自测题答案 78
第4章 条件与循环 80
4.1 布尔表达式 80
4.1.1 相等运算符和关系
运算符 81
4.1.2 逻辑运算符 82
4.2 if语句 84
4.2.1 if-else语句 86
4.2.2 使用块语句 88
4.2.3 条件运算符 90
4.2.4 嵌套if语句 91
4.3 比较数据 92
4.3.1 比较浮点数 93
4.3.2 比较字符 93
4.3.3 比较对象 93
4.4 switch语句 95
4.5 while语句 98
4.5.1 无限循环 102
4.5.2 嵌套循环 103
4.5.3 其他循环控制 106
4.6 迭代器 106
4.6.1 读取文本文件 107
4.7 do语句 109
4.8 for语句 111
4.8.1 迭代器和for循环 115
4.8.2 循环语句比较 115
重要概念总结 116
术语总结 116
自测题 117
练习题 117
程序设计项目 120
自测题答案 122
第5章 编写类 124
5.1 重温类和对象 124
5.1.1 识别类和对象 125
5.1.2 职责分配 126
5.2 类的剖析 127
5.2.1 实例数据 130
5.2.2 UML类图 131
5.3 封装 132
5.3.1 可见性修饰符 133
5.3.2 访问器和更改器 134
5.4 方法的剖析 138
5.4.1 return语句 142
5.4.2 参数 143
5.4.3 本地数据 144
5.4.4 重温构造函数 145
5.5 静态类成员 145
5.5.1 静态变量 146
5.5.2 静态方法 146
5.6 类关系 149
5.6.1 依赖 149
5.6.2 同一个类中对象间
的依赖 149
5.6.3 聚合 151
5.6.4 this引用 155
5.7 方法设计 156
5.7.1 方法分解 156
5.7.2 重温方法参数 160
5.8 方法重载 163
5.9 测试 165
5.9.1 评审 166
5.9.2 缺陷测试 166
5.9.3 单元测试 167
5.9.4 集成测试 167
5.9.5测试 168
5.9.6 测试驱动开发 168
5.10 调试 168
5.10.1 使用print语句的
简单调试 169
5.10.2 调试的概念 169
重要概念总结 170
术语总结 171
自测题 172
练习题 173
程序设计项目 174
自测题答案 175
第6章 图形用户界面 178
6.1 GUI元素 178
6.1.1 框架和面板 179
6.1.2 按钮和动作事件 182
6.1.3 确定事件源 183
6.2 更多组件 186
6.2.1 文本框 186
6.2.2 复选框 188
6.2.3 单选按钮 191
6.2.4 滑块 194
6.2.5 下拉框 197
6.2.6 定时器 201
6.3 布局管理器 204
6.3.1 流式布局管理器 207
6.3.2 边界布局管理器 208
6.3.3 网格布局管理器 210
6.3.4 盒式布局管理器 212
6.3.5 容器的层次结构 214
6.4 鼠标事件和按键事件 214
6.4.1 鼠标事件 214
6.4.2 按键事件 220
6.4.3 扩展适配器类 224
6.5 对话框 224
6.5.1 文件选择器 226
6.5.2 颜色选择器 228
6.6 一些重要细节 228
6.6.1 工具提示和助记符 231
6.7 GUI设计 236
重要概念总结 236
术语总结 237
自测题 238
练习题 239
程序设计项目 240
自测题答案 241
第7章 数组 243
7.1 数组元素 243
7.2 数组的声明与使用 244
7.2.1 边界检查 246
7.2.2 数组的其他语法 250
7.2.3 初始化列表 251
7.2.4 数组作为参数 252
7.3 对象数组 252
7.4 命令行参数 260
7.5 变长参数列表 261
7.6 二维数组 264
7.6.1 多维数组 267
重要概念总结 268
术语总结 268
自测题 269
练习题 269
程序设计项目 270
自测题答案 272
第8章 继承 273
8.1 创建子类 273
8.1.1 受保护的修饰符 277
8.1.2 super引用 278
8.1.3 多重继承 281
8.2 方法重写 281
8.2.1 影子变量 284
8.3 类的层次结构 284
8.3.1 对象类 285
8.3.2 抽象类 286
8.4 可见性 288
8.5 设计继承 290
8.5.1 限制继承 291
重要概念总结 291
术语总结 292
自测题 292
练习题 292
程序设计项目 293
自测题答案 294
第9章 多态 295
9.1 动态绑定 295
9.2 使用继承实现多态 296
9.3 接口 305
9.3.1 接口的层次结构 309
9.3.2 Comparable接口 310
9.3.3 Iterator接口 310
9.4 通过接口实现多态 310
9.4.1 事件处理 312
重要概念总结 313
术语总结 313
自测题 314
练习题 314
程序设计项目 314
自测题答案 315
第10章 异常 317
10.1 异常处理 317
10.2 不捕获异常 318
10.3 try-catch语句 319
10.3.1 finally子句 321
10.4 异常传播 322
10.5 异常类的层次结构 325
10.5.1 受检查和不受检查
的异常 327
10.6 I/O异常 327
重要概念总结 331
术语总结 331
自测题 332
练习题 332
程序设计项目 332
自测题答案 333
第11章 算法分析 334
11.1 算法效率 334
11.2 增长函数和大O符号 335
11.3 增长函数的比较 337
11.4 确定时间复杂度 338
11.4.1 分析循环的执行 338
11.4.2 嵌套循环 339
11.4.3 方法调用 340
重要概念总结 341
术语总结 342
自测题 342
练习题 342
自测题答案 343
第12章 集合 344
12.1 集合概述 344
12.1.1 抽象数据类型 345
12.1.2 Java Collections
API 346
12.2 栈集合 347
12.3 至关重要的OO概念 348
12.3.1 继承与多态 349
12.3.2 泛型 349
12.4 使用栈计算后缀表达式 350
12.4.1 Javadoc 356
12.5 异常 357
12.6 栈ADT 357
12.7 用数组实现栈 360
12.7.1 容量管理 361
12.8 ArrayStack类 361
12.8.1 构造函数 362
12.8.2 push操作 364
12.8.3 pop操作 365
12.8.4 peek操作 366
12.8.5 其他操作 366
12.8.6 EmptyCollectionException
?类 366
12.8.7 其他实现 367
重要概念总结 367
术语总结 368
自测题 368
练习题 369
程序设计项目 370
自测题答案 370
第13章 链式结构 372
13.1 引用作为链 372
13.2 管理链表 374
13.2.1 访问元素 374
13.2.2 插入节点 375
13.2.3 删除节点 375
13.3 无元素的链表 376
13.3.1 双向链表 377
13.4 Java API中的栈 377
13.5 使用Stacks:遍历迷宫 377
13.6 实现栈:使用链表 385
13.6.1 LinkedStack类 385
13.6.2 push操作 388
13.6.3 pop操作 389
13.6.4 其他操作 390
重要概念总结 390
术语总结 391
自测题 391
练习题 391
程序设计项目 392
自测题答案 392
第14章 队列 394
14.1 队列的概念 394
14.2 Java API中的队列 395
14.3 使用队列:密钥 396
14.4 使用队列:模拟票务柜台 399
14.5 队列ADT 403
14.6 队列的链式实现 404
14.6.1 enqueue操作 406
14.6.2 dequeue操作 406
14.6.3 其他操作 408
14.7 使用数组实现队列 408
14.7.1 enqueue操作 412
14.7.2 dequeue操作 413
14.7.3 其他操作 414
14.8 双端队列 414
重要概念总结 414
术语总结 415
自测题 415
练习题 415
程序设计项目 416
自测题答案 417
第15章 列表 418
15.1 列表集合 418
15.2 Java Collections API中的
列表 420
15.3 使用无序列表:学位课程 421
15.4 使用索引列表:Josephus 429
15.5 列表ADT 431
15.5.1 向列表添加元素 432
15.6 用数组实现列表 436
15.6.1 remove操作 437
15.6.2 contain操作 439
15.6.3 有序列表的add
操作 440
15.6.4 特定于无序列表的
操作 441
15.6.5 无序列表的addAfter
操作 441
15.7 用链表实现列表 442
15.7.1 remove操作 443
重要概念总结 444
术语总结 444
自测题 445
练习题 445
程序设计项目 446
自测题答案 447
第16章 迭代器 448
16.1 什么是迭代器 448
16.1.1 迭代器的其他
问题 450
16.2 使用迭代器:重温学位
课程 450
16.2.1 打印指定课程 454
16.2.2 删除课程 455
16.3 使用数组实现迭代器 456
16.4 使用链表实现迭代器 458
重要概念总结 460
术语总结 460
自测题 460
练习题 460
自测题答案 461
第17章 递归 462
17.1 递归思想 462
17.1.1 无限递归 463
17.1.2 数学中的递归 463
17.2 递归编程 464
17.2.1 递归与迭代 466
17.2.2 直接递归与间接
递归 467
17.3 使用递归 467
17.3.1 穿越迷宫 467
17.3.2 汉诺塔 474
17.4 递归算法分析 477
重要概念总结 479
术语总结 479
自测题 479
练习题 480
程序设计项目 480
自测题答案 481
第18章 搜索与排序 483
18.1 搜索 483
18.1.1 静态方法 484
18.1.2 泛型方法 484
18.1.3 线性搜索 485
18.1.4 二分搜索 486
18.1.5 搜索算法比较 488
18.2 排序 489
18.2.1 选择排序 491
18.2.2 插入排序 493
18.2.3 冒泡排序 494
18.2.4 快速排序 496
18.2.5 合并排序 499
18.3 基数排序 501
18.4 排序效率和线程 505
18.4.1 线程 505
18.4.2 排序比较的演示 506
18.5 排序比较器的不同方式 517
重要概念总结 522
术语总结 523
自测题 523
练习题 524
程序设计项目 525
自测题答案 525
第19章 树 527
19.1 树的定义 527
19.1.1 树分类 528
19.2 实现树的策略 529
19.2.1 树的数组实现的
计算策略 530
19.2.2 树的数组实现的
模拟链式策略 530
19.2.3 树的分析 531
19.3 树的遍历 532
19.3.1 前序遍历 532
19.3.2 中序遍历 533
19.3.3 后序遍历 533
19.3.4 层序遍历 534
19.4 二叉树ADT 534
19.5 使用二叉树:表达式树 537
19.6 背痛分析仪 547
19.7 使用链表实现二叉树 552
19.7.1 find方法 556
19.7.2 iteratorInOrder
方法 557
重要概念总结 558
术语总结 558
自测题 559
练习题 560
程序设计项目 560
自测题答案 561
第20章 二叉搜索树 562
20.1 二叉搜索树概述 562
20.1.1 向二叉搜索树添加
元素 563
20.1.2 删除二叉搜索树中
的元素 564
20.2 实现二叉搜索树 566
20.3 用链表实现二叉搜索树 568
20.3.1 addElement操作 569
20.3.2 removeElement
操作 571
20.3.3 removeAllOccurrences
操作 573
20.3.4 removeMin操作 574
20.3.5 用数组实现二叉
搜索树 575
20.4 使用二叉搜索树实现有序
列表 575
20.4.1 BinarySearchTreeList
实现分析 578
20.5 平衡二叉搜索树 579
20.5.1 右旋 580
20.5.2 左旋 580
20.5.3 右左旋 581
20.5.4 左右旋 581
20.6 实现二叉搜索树:AVL树 582
20.6.1 AVL树的右旋 582
20.6.2 AVL树中的左旋 583
20.6.3 AVL树中的
右左旋 583
20.6.4 AVL树中的
左右旋 583
20.7 实现二叉搜索树:红/黑树 584
20.7.1 红/黑树中的插入
元素 585
20.7.2 从红/黑树中删除
元素 587
重要概念总结 589
术语总结 589
自测题 590
练习题 590
程序设计项目 591
自测题答案 591
第21章 堆与优先队列 593
21.1 堆 593
21.1.1 addElement操作 595
21.1.2 removeMin操作 596
21.1.3 findMin 操作 597
21.2 堆的应用:优先级队列 597
21.3 用链表实现堆 600
21.3.1 addElement 操作 601
21.3.2 removeMin操作 604
21.3.3 findMin操作 606
21.4 用数组实现堆 606
21.4.1 addElement操作 608
21.4.2 removeMin操作 609
21.4.3 findMin操作 611
21.5 堆的应用:堆排序 611
重要概念总结 612
术语总结 613
自测题 613
练习题 614
程序设计项目 614
自测题答案 615
第22章 集与映射 616
22.1 集与映射集合 616
22.2 Java API中的集与映射 617
22.3 Set的应用:域拦截器 619
22.4 Map的应用:产品销售 621
22.5 Map的应用:用户管理 625
22.6 使用树实现Set和Map 629
22.7 使用散列实现Set和Map 629
重要概念总结 631
术语总结 632
自测题 632
练习题 632
程序设计项目 633
自测题答案 633
第23章 多路搜索树 634
23.1 组合树的概念 634
23.2 2-3树 634
23.2.1 将元素插入2-3
树 635
23.2.2 从2-3树中删除
元素 637
23.3 2-4树 639
23.4 B-树 640
23.4.1 B*-树 642
23.4.2 B+-树 642
23.4.3 B-树分析 642
23.5 B-树的实现策略 643
重要概念总结 643
术语总结 644
自测题 644
练习题 645
程序设计项目 645
自测题答案 645
第24章 图 647
24.1 无向图 647
24.2 有向图 649
24.3 网络 650
24.4 常用的图算法 651
24.4.1 遍历 651
24.4.2 测试连通性 654
24.4.3小生成树 655
24.4.4 确定短路径 658
24.5 实现图的策略 658
24.5.1 邻接表 659
24.5.2 邻接矩阵 659
24.6 用邻接矩阵实现无向图 660
24.6.1 addEdge方法 663
24.6.2 addVertex方法 664
24.6.3 expandCapacity
方法 665
24.6.4 其他方法 665
重要概念总结 665
术语总结 666
自测题 666
练习题 667
程序设计项目 667
自测题答案 668
第25章 数据库 669
25.1 数据库简介 669
25.2 建立与数据库的连接 671
25.2.1 获取数据库驱动
程序 671
25.3 创建与更改数据库表 673
25.3.1 创建表 673
25.3.2 更改表 674
25.3.3 删除列 675
25.4 查询数据库 675
25.4.1 显示列 676
25.5 数据的插入、浏览与更新 677
25.5.1 插入 678
25.5.2 SELECT-FROM 679
25.5.3 更新 683
25.6 删除数据和数据库表 684
25.6.1 删除数据 684
25.6.2 删除数据库表 684
重要概念总结 685
自测题 685
练习题 685
程序设计项目 686
自测题答案 687
第26章 JavaFX 688
26.1 JavaFX简介 688
26.2 JavaFX的Hello World
程序 689
26.3 使用JavaFX Scene Builder 691
26.3.1 创建应用程序
项目 692
26.3.2 浏览项目文件 693
26.3.3 使用JavaFX Scene
Builder修改GUI 695
26.4 JavaFX中的事件处理 696
重要概念总结 700
自测题 700
程序设计项目 700
自测题答案 701
附录A 词汇表 702
附录B 数系 725
B.1 位值 725
B.2 基数大于10 726
B.3 转换 728
B.4 快捷转换 729
练习题 730
附录C Unicode字符集 733
附录D Java运算符 735
附录E Java修饰符 739
附录F Java图形 741
F.1 坐标系 741
F.2 表示颜色 741
F.3 绘图 742
F.4 多边形和折线 749
F.5 Polygon类 751
练习 752
程序设计项目 752
附录G Java小程序 754
G.1 在HTML中嵌入Applet 755
G.2 更多的Applet方法 756
G.3 小程序中的GUI 759
程序设计项目 765
附录H 正则表达式 766
附录I 散列 767
I.1 散列概述 767
I.2 散列函数 769
I.2.1 除留余数法 769
I.2.2 折叠法 769
I.2.3 平方取中法 770
I.2.4 基数转换法 770
I.2.5 数字分析法 770
I.2.6 长度依赖法 771
I.2.7 Java语言中的散列
函数 771
I.3 解决冲突 771
I.3.1 链接法 771
I.3.2 开放寻址法 773
I.4 删除散列表元素 775
I.4.1 从链接实现中删除
元素 775
I.4.2 从开放寻址实现中
删除 776
I.5 Java Collections API中的
散列表 776
I.5.1 Hashtable类 777
I.5.2 HashSet类 778
I.5.3 HashMap类 779
I.5.4 IdentityHashMap类 780
I.5.5 WeakHashMap类 781
I.5.6 LinkedHashSet和
LinkedHashMap 782
重要概念 783
自测题 783
练习 784
程序设计项目 784
自测题答案 785
译 者 序
程序设计和数据结构是计算机科学的重要理论基础,也是计算机科学的核心课程。本书是计算机核心课程系列的经典教材,分为两部分:Java编程基础和数据结构的Java设计与实现,专为两学期的课程设计。本书前后两部分内容的连贯性与一致性,实现了两门课程的衔接,语言简洁,分析透彻合理,讲解清晰,使学生能得心应手地运用所学的Java基础知识,设计实现复杂的数据结构。
在部分,借鉴了行业的Java软件解决方案,给出了学习Java的佳资料。本书根据程序设计的要素来组织,共分10章,分别介绍了Java的开发环境、数据与表达式、类与对象、条件与循环、类、图形用户界面、数组、继承、多态和异常等。
在第二部分,涉及集合和数据结构的构建,共分16章,分别介绍了算法分析、栈、队列、列表、迭代器、递归、搜索与排序、树、二叉搜索树、堆与优先级队列、集与映射、多路搜索树、图、数据库和JavaFX。
本书内容严谨,组织合理,不仅学习内容脉络清晰,还是对编程概念的全面性、连贯性和无缝连接性的有益探索。另外,本书性强,提供了大量真实的代码,给出了许多实用的程序示例。本书的另一特色是课后的练习和程序设计项目,能进一步提升学生对课本内容的理解,印证所学习内容,将刻板的书本知识,转化成学生自身的编程能力。
在本书翻译的过程中,译者融会贯通,深刻体会,掌握作者的思想脉络,达到翻译透彻,忠实于原著。
感谢清华大学出版社的编辑龙启铭先生,在我翻译过程中给予的帮助、建议与支持。
感谢为本书出版做出贡献的每一位参与者,感谢他们付出的真心和努力。
鉴于译者的能力有限,译文难免会出现纰漏,请各位同行和专家批评指正。
译者
2019年8月
前 言
欢迎开启Java学习之旅。本书是程序设计课程和数据结构课程的组合,所以由两部分组成,部分是Java编程基础;第二部分是复杂数据结构的Java语言程序设计与实现。本书是计算机入门课程系列的经典教材,学习时限为两个学期。因为本书的两部分内容采用统一的方法进行编写,所以使Java的基础知识与实现衔接。学生在使用本教材时,能更加真实地感知两门课程间的无缝连接,前后内容的连贯性与一致性,也能使学生更加得心应手地运用所学的Java基础知识,设计实现复杂的数据结构。
本书借鉴行业的Java软件解决方案,找出学习Java的佳资料,从而使重新修订的第4版图书内容更加丰富,设计与实现更接地气。例如,本书不是零散地在许多章节中介绍图形用户界面,而是用单独的一章全面地介绍图形用户界面。
在后面的章节中,本书也是在介绍Java软件结构之后,才涉及集合和数据结构的构建。这样做不仅使学习内容脉络更加清晰,还是对编程概念的全面性、连贯性和无缝连接性的有益探索。
第4版新特色
值得欣慰的是,我们收到了关于第3版图书的许多反馈意见。为了更好地为读者服务,使本书成为更经典的计算机课程的入门教材,我们对第3版图书的相关主题进行了修改和完善,具体内容如下:
* 新增加了一章:第26章JavaFX。
* 在第18章中增加了动画演示应用程序:即用动画演示各类排序算法,从而使读者能直观地比较不同算法的效率。
* 在新的排序动画演示示例中,增加了线程处理的介绍。
* 增加了一节:Comparable接口的使用。
* 修订了关于二叉搜索树的讨论,从而使讨论内容更加丰富。
根据读者的反馈意见,我们保留了原来Swing的相关内容,增加了一章JavaFX。也就是说,我们并没有用JavaFX完全替换Swing。我们知道,随着技术的进步,JavaFX终将会取代Swing。但就目前而言,由于基于Swing的代码数量之多,所以在特定时间段内,Swing知识还是非常重要的。
在第3版中,我们所讨论集合的相关内容脉络如下:
反馈意见表明,这种学习方法得到了读者的一致好评,因此,第4版除了继续保留这部分内容之外,还要将其发扬光大。第4版进一步阐明了Java API支持特定集合的方式与从零开始实现之间的区别。因此,教师能轻松地以比较和对比的方式指出API实现的限制。同时,这种学习方法还允许教师就事论事,根据所需,只简单地介绍集合而无须探讨实现细节。
第4版的修订是建立在前面版本所构建的强有力的教学法基础之上,为教师提供更多的选择机会。不同的教师,可以根据自己的授课内容,选择不同的主题。因此,第4版使教师能更灵活地把控自己的授课内容。
内容解析
第1章(绪论)介绍Java程序设计语言和程序开发基础,内容涵盖面向对象开发的相关概念和术语。该章是介绍性内容,旨在使学生熟悉Java开发环境。
第2章(数据与表达式)探讨Java编程所需的基本数据类型,执行运算所用的表达式,数据类型之间的转换以及借助Scanner类实现对用户交互输入数据的读取。
第3章(使用类和对象)探讨预定义类的使用和基于预定义类创建对象。类和对象主要用于处理字符串,生成随机数,执行复杂计算和格式化输出。此外,还讨论包、枚举类型和包装类。
第4章(条件与循环)介绍如何用布尔表达式进行判断。该章讨论所有与条件和循环相关的语句,包括for循环的增强版,介绍用Scanner类对迭代输入进行解析和读取文本 文件。
第5章(编写类)探讨与编写类和方法相关的问题,主题包括实例数据、可见性、范围、方法参数和返回类型。该章介绍构造函数、方法设计、静态数据和方法重载,也介绍测试与调试。
第6章(图形用户界面)探讨Java GUI的处理,重点是组件、事件和器。该章借助大量的GUI示例,具体讨论各种类型的组件和事件。同时,还介绍布局管理器、容器的层次结构、边框、提示工具和助记符。
第7章(数组)介绍数组和数组的处理。该章所涉及的主题包括边界检查、初始化器列表、命令行参数、变长参数列表和多维数组。
第8章(继承)介绍类派生、类的层次结构、覆盖和可见性等相关概念。该章的重点是正确使用继承,并要求学生了解继承在软件设计中的作用。
第9章(多态)探讨绑定的概念,绑定与多态之间的关系;分析如何使用继承或接口实现多态引用。此外,该章还分析多态设计问题。
第10章(异常)介绍异常处理,未捕获异常产生的影响,分析try-catch语句,讨论异常的传播。该章还探讨在处理输入和输出时如何使用异常,重点分析写入文本文件的示例。
第11章(算法分析)给出分析算法效率的基石,给出开发人员比较算法的重要标准和方法。该章的重点不是数学公式和推导,而是理解算法相关的重要概念。
第12章(集合与栈)介绍集合的概念,强调将接口与实现分离的需求。本章还在概念层面介绍栈,探讨基于数组的栈的实现。
第13章(链式结构与栈)讨论使用引用来创建链式数据结构,探讨链表管理的基本问题,并使用底层链式数据结构(参见第3章)定义栈的替代实现。
第14章(队列)探讨队列的概念,实现先进先出队列,以基数排序为例使队列内容形象化。后,讨论基于底层链表、定长数组和循环数组的队列实现。
第15章(列表)介绍3种类型的列表:有序列表、无序列表和索引列表。本章对这3种类型列表进行比较和对比,讨论它们的共享操作和每种列表的操作。在设计各种不同类型列表时,用户都可以使用继承。列表既可以用数组实现,也可以用链表实现。
第16章(迭代器)是新增加的一章。该章介绍迭代器的概念和实现。对集合而言,迭代器非常重要。本章的扩展讨论部分进一步探讨将迭代器功能与任何特定集合细节分开的需求。
第17章(递归)介绍递归的概念,的递归解决方案,递归的实现细节。该章还分析了递归算法的基本思想。
第18章(搜索与排序)讨论线性搜索算法和二分搜索算法;分析一些排序算法,如选择排序、插入排序、冒泡排序、快速排序和合并排序。该章的重点是搜索和排序的编程问题,比如比较对象要用Comparable接口。该章用动画程序演示排序算法的效率。当然,对比较器接口的分析与演示也非常到位。
第19章(树)概括介绍树、树的重要术语和概念。该章讨论树的各种实现方法,使用二叉树来表示计算算术表达式。
第20章(二叉搜索树)据第10章所介绍的树的基本概念,定义经典的二叉搜索树。该章先分析二叉搜索树的链式实现,之后讨论树节点的平衡对树的性能所产生的影响,后进一步探讨二叉树的AVL实现和红/黑二叉树的实现。
第21章(堆与优先队列)探讨堆的概念、使用和实现,特别介绍堆与优先队列的关系。该章给出堆排序的示例,用以证明堆的实用性。此外,还介绍堆的链式实现和数组实现。
第22章(集与映射)探讨集合的两种类型,即集和映射,强调集和映射对JavaCollections API的重要性。
第23章(多路搜索树)是前几章讨论的自然延伸,分析2-3树、2-4树和通用B树。此外,还讨论各种树的实现。
第24章(图)介绍无向图和有向图的概念,与图相关的重要术语。该章还分析一些常见的图算法,讨论图的实现,详细分析图的邻接矩阵实现。
第25章(数据库)先探讨数据库的概念、管理以及SQL查询的基本原理,之后探讨了连接Java程序与数据库的技术,后介绍与数据库交互所用到的API。
第26章(JavaFX)先介绍多个GUI和图形的示例,这些示例都使用新的JavaFX框架,之后介绍一些JavaFX元素,对Swing和JavaFX的方法进行了比较,后,分析JavaFX场景生成器应用。
补充资料
本书为学生提供的资源如下:
* 提供本书所有程序的源代码;
* 提供选择本书主题的视频提示。
通过访问网址:www.pearsonhighered.com/cs-resources,学生可获取上述资源。
在培生教育的教师资源中心,教师可以找到如下资源:
* 本书的练习题答案和编程项目源代码;
* 本书的PPT讲义;
* 题库。
教师可以通过访问网址:www.pearsonhighered.com/irc获取上述资源;也可以发信至longqm@163.com获得上述资源。
清华大学出版社官方旗舰店

^_^:08cc760c01592301314722d66c9a4f2d