当前位置:首页 > 工业技术
Java程序设计与问题求解  原书第8版
Java程序设计与问题求解  原书第8版

Java程序设计与问题求解 原书第8版PDF电子书下载

工业技术

  • 电子书积分:20 积分如何计算积分?
  • 作 者:(美)沃特·萨维奇,(美)肯里克·莫克著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2019
  • ISBN:7111620976
  • 页数:718 页
图书介绍:本书是按照编程和计算机科学的第一门课程设计的,设计初衷是教会学生基本的问题求解和编程技术,而不仅仅是一本有关Java语法的书。全书共有15章(其中第13-15章可在线获取),提供了大量的案例研究、编程示例和编程窍门。另外,许多小节还解释了问题求解和编程技术的重要性,例如循环设计技术、调试技术、样式技术、抽象数据类型和基础的面向对象编程技术,包括UML、事件驱动编程和使用类型参数的泛型编程,适合短至半学期长至一学年的课程。本书不要求读者具有任何编程经验,除了高中代数之外,也不要求读者具有任何其他数学知识。本书适合作为高等院校计算机及相关专业的编程入门课程教材。
《Java程序设计与问题求解 原书第8版》目录

第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

相关图书
作者其它书籍
返回顶部