《Java程序设计与问题求解 第7版》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:(美)萨维切著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2015
  • ISBN:9787302389354
  • 页数:793 页
图书介绍:本书第7版针对最新的Java 7做了更新,是高等学校计算机及相关专业以Java为语言讲授计算机科学课程的理想教材。本书不仅介绍了面向对象的编程以及与此相关的一些重要概念,比如设计、测试与调试、编程风格、接口继承以及异常处理,还涵盖了Java的关键特性,并在全书自始自终贯穿了对象的思想。

第1章 计算机与Java语言概述 1

1.1 计算机基础 1

1.1.1 硬件和内存 1

1.1.2 程序 3

1.1.3 编程语言、编译器、解释器 4

1.1.4 Java字节代码 6

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 编程基础 15

1.3.1 面向对象编程 15

1.3.2 算法 17

1.3.3 测试与调试 19

1.3.4 软件重用 20

1.4 图形补充材料 21

1.4.1 一个示例图形小应用程序 21

1.4.2 图形的大小和位置 23

1.4.3 绘制椭圆和圆 24

1.4.4 绘制弧形 25

1.4.5 运行小应用程序 27

1.5 本章小结 27

练习题 28

编程项目 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 简单输入 41

2.1.6 简单屏幕输出 42

2.1.7 常量 43

2.1.8 具名常量 44

2.1.9 赋值兼容性 45

2.1.10 类型强制转换 46

2.1.11 数学运算符 49

2.1.12 小括号与优先级规则 51

2.1.13 特殊赋值运算符 53

2.1.14 增量和减量运算符 58

2.1.15 增量和减量运算符的更多介绍 59

2.2 String类 60

2.2.1 字符串常量和变量 60

2.2.2 字符串的拼接 61

2.2.3 String类的方法 62

2.2.4 字符串处理 65

2.2.5 转义字符 66

2.2.6 Unicode字符串 67

2.3 键盘与屏幕的输入输出 68

2.3.1 屏幕输出 69

2.3.2 键盘输入 71

2.3.3 其他输入分隔符(选读) 76

2.3.4 使用printf进行格式化输出(选读) 77

2.4 文档与风格 79

2.4.1 有意义的变量名称 79

2.4.2 注释 79

2.4.3 缩进 82

2.4.4 使用具名常量 82

2.5 图形补充材料 84

2.5.1 运用到图形小应用程序上的样式规则 85

2.5.2 使用JFrame类创建Java GUI应用程序 85

2.5.3 JOptionPane类概述 89

2.5.4 以其他数值类型方式读取输入 96

2.6 本章小结 98

练习题 99

编程实践 101

编程项目 102

自测题答案 105

第3章 程序控制流:分支 109

3.1 if-else语句 109

3.1.1 基本if-else语句 109

3.1.2 布尔表达式 115

3.1.3 比较字符串 119

3.1.4 嵌套if-else语句 123

3.1.5 多分支if-else语句 125

3.1.6 条件运算符(选读) 131

3.1.7 exit方法 132

3.2 boolean类型 133

3.2.1 布尔变量 133

3.2.2 优先级规则 135

3.2.3 布尔值的输入和输出 137

3.3 switch语句 138

3.3.1 枚举 144

3.4 图形补充材料 145

3.4.1 指定绘图颜色 146

3.4.2 表达“是”或“否”提问的对话框 149

3.5 本章小结 151

练习题 151

编程实践 153

编程项目 154

自测题答案 155

第4章 程序控制流:循环 158

4.1 Java循环语句 158

4.1.1 while语句 158

4.1.2 do-while语句 162

4.1.3 for语句 173

4.1.4 在for语句内部声明变量 178

4.1.5 在for语句中使用逗号(选读) 179

4.1.6 for-each语句 180

4.2 使用循环编程 181

4.2.1 循环体 181

4.2.2 初始化语句 182

4.2.3 控制循环迭代次数 183

4.2.4 循环中的break语句和continue语句(选读) 190

4.2.5 循环错误 192

4.2.6 跟踪变量 194

4.2.7 断言检查 195

4.3 图形补充材料 197

4.3.1 drawString方法 202

4.4 本章小结 203

练习题 203

编程实践 205

编程项目 207

自测题答案 210

第5章 定义类与方法 215

5.1 类与方法定义 215

5.1.1 类文件与分别编译 217

5.1.2 实例变量 218

5.1.3 方法 220

5.1.4 定义void方法 223

5.1.5 定义返回一个值的方法 224

5.1.6 关键字this 231

5.1.7 局部变量 233

5.1.8 语句块 235

5.1.9 基本类型参数 235

5.2 信息隐藏与封装 241

5.2.1 信息隐藏 241

5.2.2 前置条件注释与后置条件注释 241

5.2.3 public与private修饰符 242

5.2.4 访问器方法和修改器方法 248

5.2.5 调用方法的方法 255

5.2.6 封装 260

5.2.7 使用javadoc完成自动文档 263

5.2.8 UML类图 263

5.3 对象和引用 264

5.3.1 类类型变量 264

5.3.2 为类定义equals方法 269

5.3.3 布尔值方法 274

5.3.4 类类型的参数 278

5.4 图形补充材料 285

5.4.1 Graphics类 285

5.4.2 Graphics2D类与Java 2D API 289

5.4.3 init方法 291

5.4.4 向小应用程序中添加标签 292

5.5 本章小结 295

练习题 296

编程实践 299

编程项目 300

自测题答案 304

第6章 再论对象与方法 310

6.1 构造器 311

6.1.1 定义构造器 311

6.1.2 在构造器中调用方法 319

6.1.3 从一个构造器中调用另一个构造器(选读) 322

6.2 静态变量与静态方法 323

6.2.1 静态变量 323

6.2.2 静态方法 325

6.2.3 将main方法的任务划分为子任务 330

6.2.4 把main方法添加到一个类中 331

6.2.5 Math类 334

6.2.6 包装类 336

6.3 编写方法 340

6.3.1 分解 346

6.3.2 解决编译器的关注 347

6.3.3 测试方法 348

6.4 重载 350

6.4.1 重载基础 350

6.4.2 重载与自动类型转换 353

6.4.3 重载与返回类型 355

6.5 再论信息隐藏 363

6.5.1 私有性泄露 363

6.6 将枚举看作类 367

6.7 包 369

6.7.1 包与导入 369

6.7.2 包名和目录 371

6.7.3 名称冲突 373

6.8 图形补充材料 373

6.8.1 添加按钮 374

6.8.2 事件驱动编程 375

6.8.3 编程按钮 376

6.8.4 添加图标 381

6.8.5 改变可见性 383

6.9 本章小结 386

练习题 387

编程项目 389

自测题答案 392

第7章 数组 399

7.1 数组基础 400

7.1.1 创建和访问数组 400

7.1.2 数组细节 403

7.1.3 实例变量length 406

7.1.4 再论数组下标 408

7.1.5 初始化数组 411

7.2 在类和方法中使用数组 412

7.2.1 下标变量作为方法参量 420

7.2.2 整个数组作为方法的参量 422

7.2.3 方法main的参量 423

7.2.4 数组赋值和相等 424

7.2.5 返回数组的方法 427

7.3 使用数组和类进行编程 431

7.3.1 部分填充数组 438

7.4 排序和搜索数组 439

7.4.1 选择排序 439

7.4.2 其他排序算法 444

7.4.3 搜索数组 444

7.5 多维数组 445

7.5.1 多维数组基础 446

7.5.2 多维数组参数和返回值 449

7.5.3 多维数组的Java表示 451

7.5.4 不规则数组(选读) 452

7.6 图形补充材料 459

7.6.1 文本域和文本字段 459

7.6.2 类JTextArea和JTextField 462

7.6.3 绘制多边形 463

7.7 本章小结 465

练习题 466

编程实践 470

编程项目 472

自测题答案 476

第8章 继承、多态与接口 483

8.1 继承基础 483

8.1.1 派生类 484

8.1.2 覆盖方法定义 488

8.1.3 覆盖和重载 489

8.1.4 final修饰符 489

8.1.5 基类的私有实例变量和私有方法 490

8.1.6 UML继承图 491

8.2 使用继承编程 493

8.2.1 派生类中的构造器 493

8.2.2 再论this方法 495

8.2.3 调用覆盖方法 495

8.2.4 在Undergraduate中定义equals方法的另一种途径 500

8.2.5 类型兼容性 500

8.2.6 Obiect类 504

8.2.7 更好的equals方法 506

8.3 多态 508

8.3.1 动态绑定与继承 508

8.3.2 与toString动态绑定 511

8.4 接口与抽象类 512

8.4.1 类接口 512

8.4.2 Java接口 513

8.4.3 实现接口 514

8.4.4 接口作为类型使用 516

8.4.5 扩展接口 519

8.4.6 抽象类 535

8.5 图形补充材料 537

8.5.1 JApplet类 538

8.5.2 JFrame类 538

8.5.3 窗口事件和窗口侦听器 541

8.5.4 ActionLisener接口 542

8.5.5 下一步做什么 542

8.6 本章小结 543

练习题 544

编程实践 545

编程项目 546

自测题答案 548

第9章 异常处理 552

9.1 基本异常的处理 552

9.1.1 Java中的异常 552

9.1.2 预定义异常类 561

9.2 自定义异常类 563

9.3 异常类深入介绍 572

9.3.1 声明异常(转移责任) 572

9.3.2 异常的种类 575

9.3.3 错误 576

9.3.4 多个抛出和多个捕获 577

9.3.5 finally语句块 583

9.3.6 重新抛出异常(选读) 583

9.4 图形补充材料 595

9.4.1 GUI中的异常 595

9.5 本章小结 599

练习题 599

编程实践 601

编程项目 602

自测题答案 606

第10章 流、文件I/O与网络技术 610

10.1 流与文件I/O概述 610

10.1.1 流的概念 611

10.1.2 为什么使用文件进行I/O 611

10.1.3 文本文件和二进制文件 611

10.2 文本文件I/O 613

10.2.1 创建文本文件 613

10.2.2 往文本文件添加内容 618

10.2.3 从文本文件读取数据 620

10.3 操作任意文件的技巧 622

10.3.1 File类 622

10.3.2 使用路径名 624

10.3.3 File类的方法 625

10.3.4 定义打开流的方法 627

10.4 基本二进制文件I/O 631

10.4.1 创建二进制文件 631

10.4.2 把基本类型的数值写入二进制文件 633

10.4.3 把字符串写入二进制文件 636

10.4.4 writeUTF的一些细节 636

10.4.5 读取二进制文件 637

10.4.6 EOFException类 641

10.5 使用对象和数组进行二进制文件I/O 648

10.5.1 使用类的对象进行二进制文件I/O 648

10.5.2 串行化的一些细节 652

10.5.3 二进制文件中的数组对象 653

10.6 使用流进行网络通信 655

10.7 图形补充材料 660

10.8 本章小结 666

练习题 666

编程实践 669

编程项目 670

自测题答案 674

第11章 递归 680

11.1 递归基础 680

11.1.1 递归的工作原理 687

11.1.2 无限递归 690

11.1.3 递归方法与迭代方法的对比 693

11.1.4 返回值的递归方法 695

11.2 使用递归编程 698

11.3 本章小结 711

练习题 711

编程实践 713

编程项目 714

自测题答案 718

第12章 动态数据结构与泛型 721

12.1 基于数组的数据结构 722

12.1.1 ArrayList类 722

12.1.2 创建ArrayList的实例 723

12.1.3 使用ArrayList的方法 724

12.1.4 参数化类和通用数据类型 730

12.2 Java集合框架 730

12.2.1 Collection接口 730

12.2.2 HashSet类 731

12.2.3 Map接口 732

12.2.4 HashMap类 733

12.3 链式数据结构 735

12.3.1 LinkedList类 735

12.3.2 链表 736

12.3.3 实现链表操作 738

12.3.4 私有性泄露 744

12.3.5 内部类 745

12.3.6 结点内部类 746

12.3.7 迭代器 746

12.3.8 Java Iterator接口 756

12.3.9 链表的异常处理 757

12.3.10 链表的变体 759

12.3.11 其他链式数据结构 761

12.4 泛型 762

12.4.1 泛型基础 762

12.5 本章小结 769

练习题 770

编程实践 773

编程项目 773

自测题答案 777

附录 782

附录1 获得Java 782

附录2 运行小应用程序 782

附录3 protected与包修饰符 783

附录4 DecimalFormat类 784

附录5 javadoc 787

附录6 C++和Java之间的差别 789

附录7 Unicode字符编码 792