Java程序设计与问题求解 原书第8版PDF电子书下载
- 电子书积分:20 积分如何计算积分?
- 作 者:(美)沃特·萨维奇,(美)肯里克·莫克著
- 出 版 社:北京:机械工业出版社
- 出版年份:2019
- ISBN:7111620976
- 页数:718 页
第1章 计算机与Java引论 1
1.1 计算机基础 1
1.1.1 硬件与内存 2
1.1.2 程序 3
1.1.3 编程语言、编译器和解释器 4
1.1.4 Java字节码 5
1.1.5 类加载器 7
1.2 浅尝Java 8
1.2.1 Java语言的历史 8
1.2.2 应用程序与小应用程序 9
1.2.3 第一个Java应用程序 9
1.2.4 编写、编译和运行Java程序 13
1.3 编程基础 14
1.3.1 面向对象编程 14
1.3.2 算法 17
1.3.3 测试与调试 18
1.3.4 软件复用 19
1.4 图形化编程补充读物 20
1.4.1 一个JavaFX应用程序样例 21
1.4.2 图形的尺寸和位置 23
1.4.3 绘制椭圆和圆 24
1.4.4 绘制弧 25
本章小结 27
练习 28
实践程序 29
编程项目 29
自测问题答案 30
第2章 基本的计算 33
2.1 变量和表达式 33
2.1.1 变量 33
2.1.2 数据类型 35
2.1.3 Java标识符 37
2.1.4 赋值语句 38
2.1.5 简单输入 40
2.1.6 简单屏幕输出 41
2.1.7 常量 42
2.1.8 具名常量 43
2.1.9 赋值兼容性 44
2.1.10 类型强制转换 45
2.1.11 算术运算 48
2.1.12 括号和优先级规则 50
2.1.13 特殊赋值操作符 51
2.1.14 案例研究:售货机找零 52
2.1.15 递增和递减操作符 56
2.1.16 更多有关递增和递减操作符的讨论 57
2.2 String类 57
2.2.1 字符串常量和变量 58
2.2.2 字符串连接 58
2.2.3 字符串方法 59
2.2.4 字符串处理 62
2.2.5 转义字符 63
2.2.6 Unicode字符集 64
2.3 键盘和屏幕I/O 65
2.3.1 屏幕输出 65
2.3.2 键盘输入 67
2.3.3 其他输入界定符(选修) 72
2.3.4 使用printf的格式化输出(选修) 73
2.4 文档和样式 75
2.4.1 有意义的变量名 75
2.4.2 注释 75
2.4.3 缩进 77
2.4.4 使用具名常量 78
2.5 图形化编程补充读物 80
2.5.1 将样式规则应用于JavaFX应用程序 80
2.5.2 介绍JOptionPane类 81
2.5.3 将输入作为其他数字类型读取 87
2.5.4 编程示例:具有窗口化I/O的找零程序 88
本章小结 90
练习 90
实践程序 92
编程项目 93
自测问题答案 94
第3章 流控制——分支 98
3.1 if-else语句 98
3.1.1 基本的if-else语句 98
3.1.2 布尔表达式 104
3.1.3 比较字符串 107
3.1.4 嵌套的if-else语句 111
3.1.5 多重分支的if-else语句 112
3.1.6 编程示例:给出字母等第 114
3.1.7 案例研究:体重指数 116
3.1.8 条件操作符(选修) 118
3.1.9 exi t方法 119
3.2 bool ean类型 120
3.2.1 布尔变量 120
3.2.2 优先级规则 121
3.2.3 布尔值的输入和输出 123
3.3 switch语句 124
3.4 图形化编程补充读物 130
3.4.1 指定绘图颜色 131
3.4.2 Yes或No问题的对话框 134
本章小结 135
练习 136
实践程序 137
编程项目 138
自测问题答案 140
第4章 流控制——循环 142
4.1 Java循环语句 142
4.1.1 while语句 143
4.1.2 do-while语句 146
4.1.3 编程示例:臭虫侵扰 149
4.1.4 编程示例:嵌套循环 154
4.1.5 for语句 155
4.1.6 在for语句中声明变量 160
4.1.7 在for语句中使用逗号(选修) 160
4.1.8 for-each语句 162
4.2 用循环编程 162
4.2.1 循环体 162
4.2.2 初始化语句 163
4.2.3 控制循环迭代次数 164
4.2.4 案例研究:使用布尔变量来终止循环 166
4.2.5 编程示例:消费热潮 168
4.2.6 循环中的break语句和continue语句(选修) 170
4.2.7 循环缺陷 172
4.2.8 跟踪变量 174
4.2.9 断言检查 175
4.3 图形化编程补充读物 177
4.3.1 编程示例:一个包含多张脸的JavaFX应用程序 177
4.3.2 绘制文本 181
本章小结 182
练习 182
实践程序 184
编程项目 185
自测问题答案 188
第5章 定义类和方法 193
5.1 类和方法定义 193
5.1.1 类文件和单独编译 195
5.1.2 编程示例:实现Dog类 195
5.1.3 实例变量 196
5.1.4 方法 198
5.1.5 定义void方法 200
5.1.6 定义有返回值的方法 201
5.1.7 编程示例:实现Species类的第一次尝试 205
5.1.8 关键词this 208
5.1.9 局部变量 209
5.1.10 块 211
5.1.11 基本类型参数 212
5.2 信息隐藏和封装 216
5.2.1 信息隐藏 217
5.2.2 前置条件和后置条件注释 217
5.2.3 publ ic和private修饰符 218
5.2.4 编程示例:为什么实例变量应该是私有的 220
5.2.5 编程示例:矩形类的另一种实现 221
5.2.6 访问器方法和修改器方法 223
5.2.7 编程示例:Purchase类 225
5.2.8 调用方法的方法 228
5.2.9 封装 233
5.2.10 使用javadoc自动归档 235
5.2.11 UML类图 235
5.3 对象和引用 236
5.3.1 类类型变量 237
5.3.2 定义类的equals方法 242
5.3.3 编程示例:Species类 244
5.3.4 布尔值方法 246
5.3.5 案例研究:单元测试 247
5.3.6 类类型参数 249
5.3.7 编程示例:类类型参数与基本类型参数 252
5.4 图形化编程补充读物 255
5.4.1 Graphi csContext类 255
5.4.2 编程示例:用辅助方法绘制多张脸 257
5.4.3 向JavaFX应用程序添加标签 260
本章小结 261
练习 262
实践程序 264
编程项目 265
自测问题答案 269
第6章 对象和方法进阶 274
6.1 构造器 275
6.1.1 定义构造器 275
6.1.2 在构造器中调用方法 281
6.1.3 在构造器中调用其他构造器(选修) 284
6.2 静态变量和静态方法 285
6.2.1 静态变量 285
6.2.2 静态方法 286
6.2.3 将main方法中的任务划分为子任务 291
6.2.4 在类中添加main方法 293
6.2.5 Math类 294
6.2.6 包装器类 296
6.3 编写方法 300
6.3.1 案例研究:格式化输出 300
6.3.2 分解 305
6.3.3 解决编译器问题 305
6.3.4 测试方法 307
6.4 重载 309
6.4.1 重载基础知识 309
6.4.2 重载和自动类型转换 311
6.4.3 重载和返回类型 313
6.4.4 编程示例:Money类 315
6.5 再探信息隐藏 320
6.6 作为类的枚举 323
6.7 包 325
6.7.1 包和导入机制 325
6.7.2 包名和目录 326
6.7.3 名字冲突 328
6.8 图形化编程补充读物 329
6.8.1 添加按钮 329
6.8.2 添加图标 330
本章小结 332
练习 332
实践程序 334
编程项目 335
自测问题答案 338
第7章 数组 343
7.1 数组基础 344
7.1.1 创建和访问数组 344
7.1.2 数组详情 346
7.1.3 实例变量length 349
7.1.4 进一步了解数组索引 351
7.1.5 初始化数组 354
7.2 类和方法中的数组 355
7.2.1 案例研究:销售报表 355
7.2.2 索引变量作为方法引元 362
7.2.3 整个数组作为方法引元 363
7.2.4 main方法的引元 365
7.2.5 数组赋值和判等 365
7.2.6 返回数组的方法 368
7.3 用数组和类编程 371
7.3.1 编程示例:专用列表类 371
7.3.2 部分填充的数组 377
7.4 数组排序和搜索 378
7.4.1 选择排序 378
7.4.2 其他排序算法 382
7.4.3 在数组中搜索 383
7.5 多维数组 383
7.5.1 多维数组基础知识 384
7.5.2 多维数组作为参数和返回值 386
7.5.3 多维数组的Java表示形式 388
7.5.4 参差数组(选修) 389
7.5.5 编程示例:工时记录 390
7.6 图形化编程补充读物 395
7.6.1 布局面板 395
7.6.2 文本域、文本框和组合布局 401
7.6.3 绘制多边形 404
本章小结 407
练习 407
实践程序 411
编程项目 412
自测问题答案 416
第8章 继承、多态和接口 422
8.1 继承基础 422
8.1.1 派生类 423
8.1.2 覆盖方法定义 426
8.1.3 覆盖与重载 427
8.1.4 final修饰符 427
8.1.5 基类的私有实例变量与私有方法 428
8.1.6 UML继承图 429
8.2 运用继承编程 431
8.2.1 派生类中的构造器 431
8.2.2 再论this方法 432
8.2.3 调用被覆盖的方法 433
8.2.4 编程示例:派生类的派生类 434
8.2.5 在Undergraduate中定义equals方法的另一种方式 437
8.2.6 类型兼容性 437
8.2.7 Obj ect类 441
8.2.8 更好的equals方法 442
8.3 多态 444
8.3.1 动态绑定和继承 444
8.3.2 动态绑定toString 447
8.4 接口与抽象类 448
8.4.1 类接口 448
8.4.2 Java接口 449
8.4.3 实现接口 450
8.4.4 作为类型的接口 452
8.4.5 扩展接口 454
8.4.6 案例研究:字符图形 455
8.4.7 案例研究:Comparable接口 464
8.4.8 抽象类 468
8.5 图形化编程补充读物 469
8.5.1 事件驱动编程 470
8.5.2 在单独的类中处理事件 471
8.5.3 在主GUI应用类中处理事件 473
8.5.4 在匿名内部类中处理事件 475
8.5.5 编程示例:添加数字 477
本章小结 479
练习 479
实践程序 480
编程项目 481
自测问题答案 483
第9章 异常处理 486
9.1 基本的异常处理 486
9.1.1 Java中的异常 487
9.1.2 预定义的异常类 495
9.2 定义自己的异常类 496
9.3 更多有关异常类的知识 503
9.3.1 声明异常(传递责任) 504
9.3.2 异常的种类 506
9.3.3 错误 507
9.3.4 多个抛出和捕获 508
9.3.5 finally块 513
9.3.6 重新抛出异常(选修) 513
9.3.7 案例研究:面向命令行的计算器 514
9.4 图形化编程补充读物 523
9.4.1 更多的用户界面控件和形状 523
9.4.2 图像和形状 526
9.4.3 处理鼠标事件 527
9.4.4 Timeline类 530
本章小结 532
练习 533
实践程序 534
编程项目 536
自测问题答案 538
第10章 流、文件I/O和网络 542
10.1 流和文件I/O概览 542
10.1.1 流的概念 543
10.1.2 为什么用文件来进行输入/输出 543
10.1.3 文本文件和二进制文件 543
10.2 文本文件I/O 545
10.2.1 创建文本文件 545
10.2.2 在文本文件中追加内容 550
10.2.3 从文本文件中读取内容 551
10.3 适用于所有文件的技术 553
10.3.1 File类 553
10.3.2 编程示例:从键盘读取文件名 554
10.3.3 使用路径名 555
10.3.4 File类的方法 556
10.3.5 定义方法来打开流 558
10.3.6 案例研究:处理由逗号分隔的数值文件 559
10.4 基本的二进制文件I/O 561
10.4.1 创建二进制文件 561
10.4.2 向二进制文件中写入基本类型值 563
10.4.3 向二进制文件中写入字符串 565
10.4.4 有关writeUTF的一些细节 566
10.4.5 从二进制文件中读取内容 566
10.4.6 EOFException类 570
10.4.7 编程示例:处理二进制数据文件 572
10.5 包含对象和数组的二进制文件I/O 576
10.5.1 包含类的对象的二进制文件I/O 576
10.5.2 序列化的一些细节 579
10.5.3 二进制文件中的数组对象 580
10.6 使用流的网络通信 582
10.7 图形化编程补充读物 586
本章小结 591
练习 591
实践程序 593
编程项目 594
自测问题答案 597
第11章 递归 601
11.1 递归基础 601
11.1.1 案例研究:数字位显示成单词 603
11.1.2 递归如何工作 607
11.1.3 无限递归 610
11.1.4 递归方法与迭代方法 612
11.1.5 有返回值的递归方法 614
11.2 运用递归编程 617
11.2.1 编程示例:要求用户输入必须正确 617
11.2.2 案例研究:二分搜索 618
11.2.3 编程示例:归并排序——一种递归排序方法 624
11.3 图形化编程补充读物 627
本章小结 630
练习 630
实践程序 632
编程项目 632
自测问题答案 636
第12章 动态数据结构和泛型 639
12.1 基于数组的数据结构 640
12.1.1 ArrayList类 640
12.1.2 创建ArrayList的实例 641
12.1.3 使用ArrayList的方法 642
12.1.4 编程示例:待办事项列表 645
12.1.5 参数化类和泛化数据类型 647
12.2 Java集合框架 648
12.2.1 Collection接口 648
12.2.2 HashSet类 649
12.2.3 Map接口 650
12.2.4 HashMap类 650
12.3 链式数据结构 653
12.3.1 Li nkedLi st类 653
12.3.2 链表 653
12.3.3 实现链表的操作 655
12.3.4 隐私泄露 660
12.3.5 内部类 661
12.3.6 节点内部类 662
12.3.7 迭代器 662
12.3.8 Java的Iterator接口 670
12.3.9 链表的异常处理 671
12.3.10 链表的变体 673
12.3.11 其他链式数据结构 675
12.4 泛型 675
12.4.1 基础知识 675
12.4.2 编程示例:一个泛化的链表 678
12.5 图形化编程补充读物 682
12.5.1 用场景构建器构建JavaFX应用程序 682
12.5.2 何去何从 686
本章小结 686
练习 687
实践程序 689
编程项目 690
自测问题答案 693
附录A 获取Java 696
附录B 运行Applet 697
附录C protected和包修饰符 698
附录D DecimalFormat类 699
附录E j avadoc 702
附录F C++和Java之间的区别 704
附录G Unicode字符编码 707
附录H Java 8函数式编程简介 708
附录I Iterator接口 712
附录J 克隆 713
附录K Java保留关键词 716
- 《社会学与人类生活 社会问题解析 第11版》(美)James M. Henslin(詹姆斯·M. 汉斯林) 2019
- 《强制执行前沿与热点问题》陈兴责编;乔宇 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《党员干部理论学习培训教材 理论热点问题党员干部学习辅导》(中国)胡磊 2018
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《看漫画学钢琴 技巧 3》高宁译;(日)川崎美雪 2019
- 《微表情密码》(波)卡西亚·韦佐夫斯基,(波)帕特里克·韦佐夫斯基著 2019
- 《优势谈判 15周年经典版》(美)罗杰·道森 2018
- 《社会学与人类生活 社会问题解析 第11版》(美)James M. Henslin(詹姆斯·M. 汉斯林) 2019
- 《海明威书信集:1917-1961 下》(美)海明威(Ernest Hemingway)著;潘小松译 2019
- 《迁徙 默温自选诗集 上》(美)W.S.默温著;伽禾译 2020
- 《上帝的孤独者 下 托马斯·沃尔夫短篇小说集》(美)托马斯·沃尔夫著;刘积源译 2017
- 《巴黎永远没个完》(美)海明威著 2017
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019