《Java解析教程》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)Ira Pohl,(美)Charlie McDowell著;王晓光译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2003
  • ISBN:7302073929
  • 页数:441 页
图书介绍:本书以“解析法”突出了Java的主要特性,编程风格和方法,是国外很受欢迎的Java教材,目前已知国外有13所大学将其选作主修或辅修教材。书中首先介绍了所有基本数据类型和控制语句的习惯用法,然后循序渐进,过渡到Java语言面向对象方面的特性及其这一特性对程序设计的重要性。这种方式有助于新手在接触高级主题之前,首先掌握基本的编程知识。此外,本书还涉及到一些高级的复杂主题,如多线程、GUI、异常处理和文件操作等。本书具备理想的深度和广度,适合用作相关专业主修或辅修教材,也适合打算提高编程技能的程序员参考。

第1章 绪论 1

1.1 解决办法 1

1.2 算法——力求准确 3

1.3 用Java实现我们的算法 4

1.4 为什么要学Java 5

1.5 网络计算和Web 6

1.6 人机交互和GUI 7

第2章 程序的基本元素 11

2.1 Java中的“Hello,world!” 11

2.2 编译并运行Java程序 12

2.3 词法元素 13

2.3.1 空白 14

2.3.2 注释 14

2.3.3 关键字 14

2.3.4 标识符 15

2.3.5 字符常量 16

2.3.6 运算符和标点符号 16

2.4 数据类型和变量声明 16

2.4.1 变量 17

2.4.2 变量的初始化 18

2.5 示例:字符串的连接 18

2.6 用户输入 20

2.7 调用预定义的方法 21

2.8 print()和println()详解 22

2.9 数字类型 23

2.9.1 整数类型 23

2.9.2 浮点类型 24

2.9.3 char类型 25

2.9.4 数字与字符串的比较 26

2.10 数学表达式 27

2.10.1 整数运算的例子:MakeChange.java 27

2.10.2 类型转换 28

2.11 赋值运算符 30

2.12 自增运算符和自减运算符 31

2.13 运算符的优先级和结合性 33

2.14 编程风格 34

第3章 语句与控制流 42

3.1 表达式、块和空语句 42

3.2 布尔表达式 44

3.2.1 关系运算符和相等运算符 44

3.2.2 逻辑运算符 44

3.3 if语句 45

3.4 if-else语句 49

3.4.1 嵌套的if-else语句 51

3.4.2 连续的if-else语句 52

3.4.3 不确定的else问题 53

3.5 while语句 54

3.6 for语句 58

3.7 break语句和continue语句 60

3.8 switch语句 62

3.9 利用布尔代数规则 64

3.10 编程风格 64

第4章 方法:功能抽象 74

4.1 方法调用 74

4.2 静态方法的定义 75

4.3 return语句 77

4.4 变量的作用域 78

4.5 自顶向下设计 80

4.6 解决问题:随机数 83

4.7 模拟:计算概率 84

4.8 按值调用 87

4.9 解决问题:一个计算机游戏 88

4.9.1 Twenty-One Pickup:需求分析和定义 89

4.9.2 Twenty-One Pickup:设计 89

4.9.3 Twenty-One Pickup:实现 91

4.9.4 Twenty-One Pickup:测试 96

4.10 递归 96

4.11 解决问题:数学函数 98

4.12 方法重载 100

4.13 编程风格 102

第5章 数组 111

5.1 一维数组 111

5.1.1 对数组元素进行索引 112

5.1.2 数组的初始化 112

5.1.3 数组成员:长度 113

5.2 方法传递数组 114

5.3 数组的赋值 116

5.4 找出数组中的最大值和最小值 117

5.5 最简单的排序方法 119

5.6 搜索已排好序的数组 121

5.7 big-oh:选择最佳算法 123

5.8 类型和数组 124

5.8.1 boolean类型:埃拉托色尼筛选法 124

5.8.2 char类型:使用排队缓冲区 125

5.8.3 double类型:常见形式的sum——累加 126

5.9 二维数组 127

5.10 生命游戏 129

5.10.1 生命游戏:需求分析和定义 130

5.10.2 生命游戏:设计 130

5.10.3 生命游戏:实现 131

5.11 非基本类型的数组 136

5.11.1 String数组 137

5.11.2 Point数组 138

5.12 编程风格 140

第6章 对象:数据抽象 148

6.1 String:使用标准类 148

6.1.1 例子:回文 148

6.1.2 字符串方法 150

6.2 StringBuffer:使用赋值方法 153

6.3 一个简单类的元素 156

6.4 访问public和private:数据隐藏 158

6.5 构造函数和对象的创建 159

6.6 静态域和静态方法 160

6.7 调用方法——总述 162

6.7.1 调用同一个类中的方法 162

6.7.2 调用实例方法 163

6.7.3 调用类方法 163

6.8 解决问题:找零钱 163

6.9 访问另一个对象的私有域 165

6.10 传递对象:引用类型 166

6.11 作用域 168

6.12 关键字final和类常量 169

6.13 对象数组 170

6.14 面向对象设计 173

6.15 编程风格 175

第7章 继承 182

7.1 学生“is a”人 182

7.2 覆盖实例方法 185

7.3 访问修饰符private和public 187

7.4 访问修饰符protected 188

7.5 Object类型和继承 190

7.6 包装类 192

7.7 抽象类 192

7.8 示例:捕食者—被捕食者模拟 194

7.9 接口 200

7.10 多重继承 202

7.11 继承和设计 204

7.12 运算符instanceof和非基本类型的类型转换 205

7.13 编程风格 206

第8章 图形用户界面(一) 211

8.1 “Hello,world!”按钮 211

8.2 监听事件 213

8.3 输入文本和数字 216

8.4 使用多个组件 217

8.5 用Swing绘图 221

8.6 布局管理器FlowLayout 224

8.7 一个简单的绘图程序 226

8.8 applet 231

8.9 编程风格 236

第9章 图形用户界面(二) 241

9.1 在GUI里排列组件 241

9.1.1 BorderLayout类 241

9.1.2 在其他容器里嵌入容器 242

9.2 对组件进行缩放 243

9.3 解决问题:绘制数据 245

9.4 Graphics类 249

9.4.1 画直线 249

9.4.2 画矩形 251

9.4.3 画椭圆 251

9.4.4 画圆弧 251

9.4.5 画多边形 252

9.4.6 画文本 253

9.4.7 使用颜色 253

9.5 修改绘图时所用的笔刷 254

9.6 为GUI添加菜单 258

9.7 事件的监听者和适配类 263

9.8 编程风格 267

第10章 文件的读与写 272

10.1 文件的类型 272

10.2 写文本文件 273

10.3 读文本文件 274

10.3.1 使用标准的Java类读文本文件 276

10.3.2 解析文本流 277

10.4 格式化文本输出 277

10.5 解决问题:文本文件的加密 282

10.6 二进制文件的读和写 284

10.7 检测输入流的结束 286

10.8 编程风格 288

第11章 异常 292

11.1 用try和catch进行异常处理 292

11.2 捕获EOFException异常 296

11.3 从抛出异常的方法突然返回 299

11.4 捕获几个不同的异常 300

11.5 finally子句 301

11.6 程序的正确性:抛出异常 303

11.7 RuntimeException和throws子句 305

11.8 编程风格 307

第12章 动态数据结构 310

12.1 自引用数据结构 310

12.2 栈的链表实现 311

12.3 单向链表 313

12.4 更多链表操作 317

12.4.1 实现IntList类的toString()方法 318

12.4.2 双向链表 319

12.5 泛化的栈 320

12.6 示例:波兰表示和栈计算 323

12.7 队列 324

12.8 迭代器 326

12.8.1 使用迭代器实现方法append() 328

12.8.2 对链表进行排序 330

12.9 迭代器和接口Iterator 331

12.10 删除对象 332

12.11 包 333

12.11.1 包访问 333

12.11.2 使用包 334

12.11.3 创建包 335

12.12 编程风格 335

第13章 用Java线程编写并发程序 340

13.1 AWT的隐式线程 340

13.2 创建线程 341

13.3 两个线程之间的通信 343

13.4 同步化两个线程 344

13.4.1 使用synchronized互斥 345

13.4.2 信号等待同步 346

13.4.3 条件变量和信号量 348

13.5 向另一台计算机传递消息 349

13.6 一个多线程服务器 353

13.7 深入sleep(),wait()和notify() 355

13.7.1 从任意位置调用sleep() 355

13.7.2 在同步方法之外调用wait()和notify() 355

13.7.3 notifyAll()方法 356

13.8 编程风格 358

附录A 位 363

A.1 整数的二进制表示 363

A.2 浮点数的表示 364

A.3 位操作 365

A.3 位操作 366

附录B 参考表 369

B.1 运算符优先级表 369

B.2 标准的Java数学函数 369

附录C 文本I/O包tio 371

C.1 tio.ReadInput类 371

C.2 tio.FormattedWriter类 377

C.3 tio.ReadException类 382

C.4 tio.Console类 382

C.5 tio.PrintFileWriter类 383

附录D 一些Swing组件的总结 384

D.1 JButton类 384

D.2 JComboBox类 384

D.3 JList类 385

D.4 JLabel类 386

D.5 JTextField类 386

D.6 JTextArea类 386

D.7 JPanel类 388

D.8 JScrollPane类 388

附录E 关于C语言 390

E.1 简介 390

E.2 向函数传递参数 399

E.3 数组 407

E.4 字符串 413

E.5 结构化的数据类型 420

E.6 文件I/O和多个源文件 432

E.6.1 文件I/O以及命令行参数 433

E.6.2 头文件 435