《Java程序设计与问题解决 原书第6版》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:(美)萨维特切著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302296508
  • 页数:787 页
图书介绍:本书以介绍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程序 14

1.3编程基础 15

1.3.1面向对象编程 15

1.3.2算法 18

1.3.3测试与调试 19

1.3.4软件重用 20

1.4图形补充材料 21

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

1.4.2图案的大小和位置 23

1.4.3绘制椭圆和圆 25

1.4.4绘制弧形 25

1.4.5运行小应用程序 27

1.5本章小结 28

练习题 28

编程项目 30

自测题答案 31

第2章 基础计算 34

2.1变量和表达式 34

2.1.1变量 34

2.1.2数据类型 36

2.1.3 Java标识符 38

2.1.4赋值语句 40

2.1.5简单输入 42

2.1.6简单屏幕输出 43

2.1.7常量 44

2.1.8命名常量 46

2.1.9赋值兼容性 47

2.1.10类型强制转换 47

2.1.11数学运算符 50

2.1.12小括号和优先级规则 53

2.1.13特殊赋值运算符 54

2.1.14增量和减量运算符 59

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

2.2 String类 61

2.2.1字符串常量和变量 61

2.2.2字符串的拼接 62

2.2.3 String方法 63

2.2.4字符串处理 66

2.2.5转义字符 67

2.2.6 Unicode字符串 68

2.3键盘和屏幕的输入输出 69

2.3.1屏幕输出 69

2.3.2键盘输入 72

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

2.3.4使用printf的格式化输出(选读) 78

2.4文档和风格 80

2.4.1有意义的变量名称 80

2.4.2注释 81

2.4.3缩进 83

2.4.4使用命名常量 84

2.5图形补充材料 86

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

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

2.5.3类JOptionPane概述 90

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

2.6本章小结 100

练习题 101

编程项目 103

自测题答案 105

第3章 控制流:分支 110

3.1 if-else语句 110

3.1.1基本if-else语句 110

3.1.2布尔表达式 116

3.1.3比较字符串 120

3.1.4嵌套if-else语句 124

3.1.5多分支if-else语句 126

3.1.6条件运算符(选读) 133

3.1.7 exit方法 134

3.2 boolean类型 135

3.2.1布尔变量 135

3.2.2优先级规则 136

3.2.3布尔值的输入和输出 138

3.3 switch语句 140

3.3.1枚举 146

3.4图形补充材料 147

3.4.1指定绘图颜色 147

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

3.5本章小结 152

练习题 153

编程项目 155

自测题答案 156

第4章 控制流:循环 160

4.1 Java循环语句 160

4.1.1 while语句 160

4.1.2 do-while语句 164

4.1.3 for语句 175

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

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

4.1.6 for-each语句 182

4.2使用循环编程 183

4.2.1循环体 183

4.2.2初始化语句 184

4.2.3控制循环迭代次数 185

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

4.2.5循环错误 195

4.2.6跟踪变量 196

4.2.7断言检查 198

4.3图形补充材料 199

4.3.1 drawString方法 204

4.4本章小结 205

练习题 205

编程项目 207

自测题答案 211

第5章 定义类和方法 216

5.1类和方法定义 216

5.1.1类文件和独立编译 218

5.1.2实例变量 219

5.1.3方法 221

5.1.4定义void方法 224

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

5.1.6关键字this 232

5.1.7局部变量 234

5.1.8语句块 236

5.1.9基本类型参数 237

5.2信息隐藏和封装 242

5.2.1信息隐藏 242

5.2.2前置条件注释和后置条件注释 243

5.2.3 public和private修饰符 244

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

5.2.5调用方法的方法 257

5.2.6封装 262

5.2.7使用javadoc完成自动文档 264

5.2.8 UML类图 265

5.3对象和引用 265

5.3.1类类型变量 266

5.3.2为类定义相等方法 271

5.3.3布尔值方法 276

5.3.4类类型参数 280

5.4图形补充材料 286

5.4.1 Graphics类 287

5.4.2 init方法 291

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

5.5本章小结 295

练习题 296

编程项目 299

自测题答案 303

第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方法添加到类中 332

6.2.5Math类 334

6.2.6包装类 336

6.3编写方法 340

6.3.1分解 346

6.3.2解决编译器的关注 347

6.3.3测试方法 349

6.4重载 351

6.4.1重载基础 351

6.4.2重载和自动类型转换 353

6.4.3重载和返回类型 355

6.5再论信息隐藏 364

6.5.1私有性泄露 364

6.6将枚举看做类 368

6.7包 370

6.7.1包和移入 370

6.7.2包名称和目录 371

6.7.3名称冲突 373

6.8图形补充材料 374

6.8.1添加按钮 375

6.8.2事件驱动编程 376

6.8.3编程按钮 377

6.8.4添加图标 382

6.8.5改变可见性 384

6.9本章小结 387

练习题 388

编程项目 390

自测题答案 394

第7章 数组 401

7.1数组基础 402

7.1.1创建和访问数组 402

7.1.2数组细节 405

7.1.3实例变量length 408

7.1.4数组下标的深入介绍 410

7.1.5初始化数组 413

7.2类和方法中的数组 414

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

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

7.2.3方法main的参量 425

7.2.4数组赋值和相等 426

7.2.5返回数组的方法 429

7.3使用数组和类编程 433

7.3.1部分填充数组 440

7.4排序和搜索数组 441

7.4.1选择排序 442

7.4.2其他排序算法 446

7.4.3搜索数组 446

7.5多维数组 447

7.5.1多维数组基础 448

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

7.5.3多维数组的Java表示 453

7.5.4不规则数组(选读) 454

7.6图形补充材料 461

7.6.1文本域和文本字段 461

7.6.2类JTextArea和JTextField 464

7.6.3绘制多边形 465

7.7本章小结 467

练习题 468

编程项目 472

自测题答案 477

第8章 继承、多态和接口 484

8.1继承基础 484

8.1.1派生类 485

8.1.2覆盖方法定义 489

8.1.3覆盖和重载 490

8.1.4 final修饰符 490

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

8.1.6 UML继承图 492

8.2使用继承编程 494

8.2.1派生类中的构造器 494

8.2.2再论this方法 496

8.2.3调用覆盖方法 496

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

8.2.5类型兼容性 501

8.2.6 Obj ect类 505

8.2.7更好的 equals方法 507

8.3多态 509

8.3.1动态绑定和继承 509

8.3.2使用toString的动态绑定 512

8.4接口和抽象类 513

8.4.1类接口 513

8.4.2 Java接口 514

8.4.3实现接口 515

8.4.4接口作为类型使用 517

8.4.5扩展接口 520

8.4.6抽象类 537

8.5图形补充材料 539

8.5.1 JApplet类 539

8.5.2 JFrame类 539

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

8.5.4 ActionLisener接口 543

8.5.5下一步做什么 544

8.6本章小结 544

练习题 545

编程项目 546

自测题答案 549

第9章 异常处理 553

9.1基本异常处理 553

9.1.1 Java中的异常 553

9.1.2预定义异常类 562

9.2定义自己的异常类 564

9.3异常类的更多细节 573

9.3.1声明异常(把责任转移出去) 573

9.3.2异常的种类 576

9.3.3出错 578

9.3.4多个抛出和多个捕获 578

9.3.5 finally语句块 584

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

9.4图形补充材料 595

9.4.1 GUI中的异常 596

9.5本章小结 599

练习题 600

编程项目 602

自测题答案 606

第10章 流和文件I/O 611

10.1流和文件I/O概览 611

10.1.1流的概念 612

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

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

10.2文本文件I/O 614

10.2.1创建文本文件 614

10.2.2添加到文本文件上 619

10.2.3从文本文件读取数据 621

10.3使用任意文件的技巧 623

10.3.1 File类 623

10.3.2使用路径名称 625

10.3.3 File类的方法 626

10.3.4定义打开流的方法 628

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

10.4.1创建二进制文件 632

10.4.2将基本类型的值写入二进制文件 634

10.4.3将字符串写入二进制文件 637

10.4.4 writeUTF的一些细节 637

10.4.5读取二进制文件 638

10.4.6 EOFException类 642

10.5对象和数组的二进制文件I/O 649

10.5.1类的对象的二进制文件I/O 649

10.5.2串行化的一些细节 653

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

10.6图形补充材料 656

10.7本章小结 662

练习题 663

编程项目 665

自测题答案 668

第11章 递归 674

11.1递归基础 674

11.1.1递归是如何工作的 681

11.1.2无限递归 684

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

11.1.4返回值的递归方法 689

11.2使用递归编程 692

11.3本章小结 705

练习题 705

编程项目 707

自测题答案 711

第12章 动态数据结构和泛型 715

12.1基于数组的数据结构 716

12.1.1类ArrayList 716

12.1.2创建ArrayList的实例 717

12.1.3使用ArrayList的方法 718

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

12.2 Java集合框架 724

12.2.1 Collection接口 725

12.2.2 HashSet类 725

12.2.3 Map接口 727

12.2.4 HashMap类 727

12.3链接数据结构 729

12.3.1类LinkedList 729

12.3.2链表 730

12.3.3实现链表操作 732

12.3.4隐私泄露 739

12.3.5内部类 739

12.3.6结点内部类 740

12.3.7迭代器 741

12.3.8 Java Iterator接口 752

12.3.9链表的异常处理 752

12.3.10链表的变化 754

12.3.11其他链接数据结构 756

12.4泛型 756

12.4.1基础 756

12.5本章小结 764

练习题 765

编程项目 767

自测题答案 771

附录 776

附录1得到Java 776

附录2运行小应用程序 776

附录3 protected和包修饰符 777

附录4 DecimalFormat类 778

附录5 Javadoc 781

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

附录7 Unicode字符编码 786