《Java面向对象程序设计》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)Paul S.Wang著;杜一民,赵小燕译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2003
  • ISBN:7302067457
  • 页数:461 页
图书介绍:本书综合介绍了Java语言编程技术和面向对象程序设计这两部分的知识。

第1章 类和对象 1

1.1 Java 程序结构 1

1.2 第一个程序 2

1.3 定义方法 3

1.4 数据类型和变量声明 4

1.4.1 数据类型 char 5

1.4.2 整型 5

1.4.3 浮点型 5

1.4.4 变量和标识符 6

1.5 数据抽象和封装 6

1.6 类和对象 7

1.6.1 信息隐藏和成员访问控制 8

1.6.2 创建对象 9

1.6.3 构造函数 10

1.6.4 成员访问符号 10

1.6.5 方法 11

1.7 字符串基础知识 11

1.7.1 字符串连接 12

1.7.2 对象的字符串表示 12

1.8 数组 13

1.9 方法调用和参数传递 15

1.10 标准 I/O 16

1.11 命令行参数和 main 方法 16

1.12 使用对象解决问题 18

1.12.1 简单的 Vector2D 类 18

1.12.2 空构造函数 20

1.12.3 其他的 Vector2D 方法 20

1.13 对象解决方案 21

1.14 面向对象要考虑的因素 23

1.15 代码结构 24

1.16 编程技巧 24

1.17 小结 25

1.18 练习 26

1.18.1 复习问题 26

1.18.2 编程任务 27

第2章 Java 的特性和构造 29

2.1 ASCII 字符的 I/O 29

2.2 文件 I/O 30

2.3 基本错误和异常处理 31

2.3.1 显示错误消息 31

2.3.2 简单的异常处理 31

2.3.3 ASCII 文本文件 I/O 和错误处理示例 32

2.4 Fraction 类 34

2.4.1 主机对象引用:this 36

2.4.2 测试 Fraction 类 37

2.5 标识符作用域 37

2.6 实例成员和类范围成员 39

2.7 符号常量 41

2.8 使用数组:Quicksort 42

2.9 String 和 StringBuffer 44

2.9.1 字符串令牌 45

2.9.2 字符串缓冲区 46

2.10 二维数组 46

2.11 Matrix 类 47

2.12 类型转换 49

2.13 隐式类型转换 49

2.13.1 方法调用转换 50

2.13.2 赋值转换 50

2.13.3 算术转换 50

2.13.4 字符串转换 50

2.14 显式类型转换 50

2.15 编程技巧 51

2.16 小结 52

2.17 练习 52

2.17.1 复习问题 52

2.17.2 编程任务 53

第3章 基于对象编程 55

3.1 定期保险账户 55

3.2 定期保险费计算器 57

3.3 Java 包装类 58

3.4 字符运算 59

3.5 URL 解码器 60

3.6 环状缓冲区 61

3.7 小型计算器仿真程序 65

3.8 链接表 72

3.8.1 表单元 73

3.8.2 链接表的设计 73

3.9 重载方法 77

3.10 分配和管理存储空间 78

3.10.1 使用运算符 new 分配对象存储空间 78

3.10.2 无用单元收集 78

3.10.3 finalize 方法 79

3.11 小结 79

3.12 练习 80

3.12.1 复习问题 80

3.12.2 编程任务 80

第4章 继承性和类扩充 82

4.1 继承性的优势 82

4.2 有关类扩充的基本知识 83

4.3 类作用域嵌套 85

4.4 扩充对象的合成 85

4.5 免费支票存款账户 86

4.6 类扩充下的访问控制 89

4.7 类扩充的原则 90

4.8 子类构造函数 90

4.9 finalize 子类 91

4.10 继承的类型关系 92

4.11 扩充的字段访问 93

4.12 隐藏字段和静态方法 93

4.13 子类下的方法访问 94

4.14 方法重写 94

4.15 重写方法的动态调用 95

4.16 示例:数字包装类 96

4.17 子类中的方法重载 97

4.18 具有开方功能的计算器 98

4.19 Object 类和通用代码 99

4.19.1 Object 方法 100

4.19.2 通用哈希表 100

4.19.3 通用数组 101

4.20 管理文本行 101

4.21 编写通用程序 103

4.22 通用列表 103

4.23 通用堆栈 106

4.24 小结 107

4.25 练习 108

4.25.1 复习问题 108

4.25.2 编程任务 109

第5章 OOP 技术:接口和多态性 110

5.1 使用插件兼容对象编程 110

5.1.1 兼容类型和多态性 111

5.1.2 插件兼容性的要素 112

5.2 使用插件兼容的组件 112

5.3 规划统一的公共接口 114

5.4 定义接口 115

5.5 实现接口 116

5.6 使用接口的原因 117

5.7 扩充接口 118

5.8 抽象超类 118

5.9 抽象顺序 119

5.9.1 实现通用操作 120

5.9.2 子类:ArraySequence 122

5.10 日期序列 123

5.11 对文本行排序 125

5.11.1 对键进行比较 126

5.11.2 文本行的 ArraySequence 127

5.12 接口和抽象类的比较 128

5.13 复制对象 129

5.13.1 使用 Object.clone 进行复制 129

5.13.2 重写 Object.clone 130

5.13.3 复制数组 131

5.14 继承的规划 132

5.15 小结 133

5.16 练习 133

5.16.1 复习问题 133

5.16.2 编程任务 134

第6章 程序包和核心类 135

6.1 程序包 135

6.1.1 从程序包导入 136

6.1.2 程序包访问控制 136

6.1.3 程序包命名约定 137

6.1.4 管理程序包 137

6.2 Java 提供的程序包 138

6.3 访问 Java 文档 138

6.4 输入和输出 139

6.4.1 I/O 流的层次结构 139

6.4.2 Java I/O 模型 141

6.5 文件 I/O 141

6.6 缓冲式 I/O 142

6.7 Print Writer 143

6.8 定期账户文件 143

6.9 文件更新 145

6.10 其他的 I/O 流 147

6.10.1 内存中的 I/O 147

6.10.2 其他的 I/O 148

6.11 文本和 Unicode 字符的 I/O 148

6.12 非字符 I/O 149

6.13 对象 I/O 151

6.14 数字和日期格式化 152

6.15 错误和异常处理 154

6.15.1 捕获异常 154

6.15.2 异常类型 156

6.15.3 指定异常 156

6.15.4 捕获原则或指定原则 157

6.15.5 抛出异常 157

6.15.6 异常中的消息 157

6.15.7 创建自定义异常 157

6.16 带有异常的矩阵示例 159

6.17 基于字符的标准 I/O 和错误报告 160

6.18 数学计算 161

6.19 日期和日历 162

6.20 系统和环境属性 163

6.21 小结 166

6.22 练习 167

6.22.1 复习问题 167

6.22.2 编程任务 167

第7章 applet 和事件驱动编程 169

7.1 关于网络 169

7.2 WEB 170

7.2.1 超文本 171

7.2.2 URL 171

7.3 Web 页面和 HTML 172

7.4 applet 173

7.4.1 applet 标记 174

7.4.2 applet 与普通应用程序的比较 175

7.5 第一个 applet 175

7.6 测试和部署 applet 177

7.7 applet 的浏览器控制 178

7.8 GUI 编程基础 181

7.9 事件处理 181

7.9.1 委托模型 182

7.9.2 事件类型和表示法 183

7.9.3 事件侦听器 184

7.9.4 事件源 185

7.9.5 编写侦听器和适配器 186

7.9.6 事件处理总结 187

7.10 Tic Tac Toe 187

7.10.1 Swing applet TicApplet 188

7.10.2 TicTacToe 面板 189

7.10.3 ClickHandler 类 191

7.10.4 TicBoard 类 192

7.10.5 TicGame 类 193

7.10.6 TicTacToe 的 HTML 文件 197

7.10.7 示例总结 197

7.11 音响效果 198

7.12 内部类 200

7.12.1 内部类示例 200

7.12.2 匿名事件处理程序 202

7.13 applet 参数 202

7.13.1 用户定义的 applet 参数 203

7.13.2 JAR 和 archive 属性 203

7.14 applet 安全限制条件 204

7.15 小结 205

7.16 练习 206

7.16.1 复习问题 206

7.16.2 编程任务 206

第8章 GUI 程序 208

8.1 GUI 编程概述 208

8.2 构件的有关概念 209

8.3 Swing 基础 209

8.4 Swing 构件概述 211

8.5 Swing 构件 212

8.5.1 顶级容器 212

8.5.2 中级容器 212

8.5.3 简单的 GUI 213

8.6 原子构件 216

8.6.1 单选按钮组 218

8.6.2 构件的字体 219

8.7 文本输入构件 220

8.8 绘制自定义图形 223

8.8.1 参数化的饼分图 224

8.8.2 PiePlot 类 224

8.8.3 ColLabel 类 226

8.8.4 PieChart 类 226

8.9 绘图支持 228

8.9.1 构件着色 228

8.9.2 自定义着色 228

8.9.3 显示图像 230

8.10 改进的饼分图 231

8.10.1 PieSec 类 232

8.10.2 PieSelect 类 233

8.11 布局管理 234

8.11.1 手动布局 235

8.11.2 自动布局 235

8.11.3 计算布局 236

8.11.4 两个构件之间的间隔 236

8.12 使用对话框 237

8.12.1 带有错误对话框的保险费计算器 237

8.12.2 通用对话框 239

8.13 使用菜单 240

8.14 事件处理注释 244

8.15 applet 双重目的程序 245

8.16 小结 247

8.17 练习 247

8.17.1 复习问题 247

8.17.2 编程任务 248

第9章 通用容器 250

9.1 表 251

9.1.1 应用 ArrayList 252

9.1.2 使用 ArrayStack 253

9.1.3 其他表 254

9.2 映射 255

9.2.1 HashMap 255

9.2.2 示例:URL 解码 256

9.2.3 TreeMap 259

9.3 迭代器 259

9.4 集合 262

9.5 集合框架接口层次结构 262

9.6 框架迭代器 264

9.7 功能元件 265

9.8 容器的一般算法 266

9.9 同步容器 269

9.10 只读容器 270

9.11 容器兼容性 270

9.12 定义自定义容器 271

9.13 小结 272

9.14 练习 272

9.14.1 复习问题 272

9.14.2 编程任务 273

第10章 联网 274

10.1 通过 URL 联网 274

10.2 创建和使用 URL 275

10.3 读取 URL 276

10.4 通过 URL 进行通信 278

10.5 HTTP 基础 279

10.6 URL 下载程序 280

10.7 POST 查询 283

10.8 查询体编码 284

10.9 POST 查询客户 285

10.10 特定的 URL 客户程序 287

10.11 applet 联网 289

10.12 CGI 脚本 290

10.13 Web 服务器端编程 291

10.14 使用套接字进行网络通信 293

10.15 流套接字客户程序 294

10.16 数据报套接字 298

10.17 创建网络服务器 298

10.18 流套接字服务器示例 299

10.18.1 安装服务器 301

10.18.2 文件服务器客户程序 301

10.19 远程方法调用 303

10.19.1 远程对象 303

10.19.2 Java RMI 的体系结构 303

10.19.3 通过 RMI 实现的阶乘服务器程序 304

10.19.4 部署客户和服务器 307

10.19.5 构建 RMI 应用程序 309

10.19.6 RMI 中的参数传递 309

10.20 小结 309

10.21 练习 310

10.21.1 复习问题 310

10.21.2 编程任务 311

第11章 线程和并发编程 312

11.1 线程的定义 312

11.1.1 多线程的优点 312

11.1.2 挑战多线程 313

11.1.3 互斥 313

11.1.4 同步 314

11.1.5 线程调度 314

11.1.6 死锁 314

11.2 Java 中的线程 314

11.3 线程编程 315

11.4 启动线程 315

11.5 线程控制 316

11.6 Java 线程的互斥 317

11.6.1 同步方法 320

11.6.2 同步语句 320

11.7 协调线程 322

11.8 消费者和生产者 322

11.8.1 具有互斥功能的环状缓冲区 323

11.8.2 生产者线程 325

11.8.3 消费者线程 325

11.8.4 执行单词计数的多线程 326

11.9 两个线程间的输入输出 327

11.10 线程优先级 328

11.11 终止线程执行 328

11.12 可运行的类 329

11.13 多线程 GUI 应用程序 329

11.13.1 60分钟计时器 330

11.13.2 TimerFace 类 331

11.13.3 Quartz 类 331

11.13.4 TimerControls 类 332

11.13.5 Timer60面板 334

11.14 带有图像的计时器 337

11.14.1 ImageFace 类 338

11.14.2 ImageTimer 类 339

11.15 分离图像加载和图像绘制 340

11.16 动画 341

11.17 AnimatorPanel 342

11.18 Animator applet 应用程序 345

11.19 图像管理器 346

11.20 小结 349

11.21 练习 349

11.21.1 复习问题 349

11.21.2 编程任务 350

第12章 高级主题 351

12.1 反射 351

12.1.1 作为对象的类 351

12.1.2 检查方法 355

12.1.3 调用已检查的方法 355

12.2 动态加载类 358

12.2.1 加载远程类:示例 358

12.2.2 加载和运行远程类 360

12.3 Java 运行时 361

12.4 在 Java 中运行其他程序 361

12.5 Java 本机接口 363

12.6 JNI 示例:基础知识 363

12.6.1 第1步:编写 Java 代码 363

12.6.2 第2步:生成头文件 364

12.6.3 第3步:实现本机代码 365

12.6.4 创建共享库 365

12.7 JNI 示例:参数传递 367

12.8 JNI 示例:字符串 368

12.9 JNI 示例:数组 370

12.10 生成 HTML 格式的 Java 文档 371

12.10.1 javadoc 生成的文件 374

12.10.2 doclet 374

12.11 剪贴板 375

12.11.1 Java 中的数据传输支持 375

12.11.2 从剪贴板中粘贴 375

12.11.3 复制到剪贴板 377

12.12 applet 之间的通信 378

12.13 Java 安全管理器 380

12.13.1 安全检查 380

12.13.2 编写安全管理器 381

12.13.3 安全策略文件 381

12.14 已签名的 applet 和动态信任管理 383

12.14.1 接受已签名的 applet 383

12.14.2 创建已签名的 applet 384

12.15 小结 384

12.16 练习 385

12.16.1 复习问题 385

12.16.2 编程任务 386

第13章 面向对象设计 387

13.1 分解方法 387

13.1.1 过程上的分解 388

13.1.2 数据分解 388

13.1.3 面向对象的分解 388

13.2 面向对象的设计原则 389

13.2.1 标识类和对象 389

13.2.2 对象的外部行为 389

13.2.3 设计对象 390

13.2.4 对象和类之间的关系 390

13.2.5 实现 390

13.3 设计模式 390

13.4 统一建模语言 391

13.5 CRC 方法 392

13.6 小型计算器仿真程序 393

13.6.1 CRC 设计 394

13.6.2 基本的计算器 394

13.6.3 内存和科学引擎 394

13.6.4 窗口计算器 395

13.6.5 实现方式 395

13.6.6 WinCalculator 类 396

13.6.7 WinFace 类 397

13.6.8 CalcWindow 类 399

13.6.9 Keypad 类 400

13.6.10 Lcd 类 402

13.7 MVC 设计模式 403

13.8 Swing 构件体系结构和 MVC 404

13.8.1 JList 的 MVC 结构 405

13.8.2 午餐菜单:MVC 示例 405

13.9 小结 408

13.10 练习 408

13.10.1 复习问题 408

13.10.2 编程任务 409

附录 A Java 工具 410

A.1 SDK 410

A.2 使用 Java 编译器 411

A.3 Java IDE 413

附录 B Java 关键字、运算符和程序包 414

B.1 关键字 414

B.2 运算符的优先顺序 414

B.3 SDK 程序包 415

B.3.1 标准程序包 415

B.3.2 标准扩充程序包 415

B.3.3 其他程序包 416

附录 C 普通的 Java 构造 417

C.1 main 方法 417

C.2 简单类 417

C.3 方法 417

C.4 for 语句 417

C.5 if 语句 418

C.6 switch 语句 418

C.7 label 语句 418

C.8 do-while 语句 418

C.9 成员访问 418

C.10 字符串连接 419

C.11 异常处理 419

C.12 显式地强制转换类型 419

C.13 类扩充 419

C.14 定义和实现接口 420

C.15 匿名类 420

C.16 applet 420

C.17 GUI 应用程序 main 421

C.18 读写文本 421

C.19 重写 equals 421

附录 D Java 和 ANSI C/C++之间的主要区别 422

D.1 Java 不支持的特性 422

D.2 C/C++中不具备的特性 422

D.3 以不同方式实现的特性 423

附录 E 布局管理器和 Swing 构件 425

E.1 布局管理器 425

E.1.1 BorderLayout 425

E.1.2 FlowLayout 426

E.1.3 GridLayout 426

E.1.4 GridBagLayout 427

E.1.5 BoxLayout 429

E.1.6 CardLayout 429

E.2 Swing 构件 430

附录 F JFC 中的颜色 431

附录 G Java I/O 类 433

G.1 输入流 433

G.2 输出流 433

G.3 随机存取文件 434

G.4 阅读器和写入器 434

附录 H 数学计算 435

H.1 Math 类 435

H.1.1 浮点方法 435

H.1.2 浮点常量 435

H.1.3 三角函数 435

H.1.4 java.math 程序包 436

附录 I Java 调试器:jdb 437

I.1 启动和退出 jdb 437

I.2 jdb 如何帮助调试 438

I.3 调试步骤 438

I.4 简单的调试会话 438

I.5 命令 440

附录 J 类的索引 441

附录 K 基本背景 445

K.1 语句 445

K.2 while 语句 445

K.3 完整的 factorial 程序 447

K.4 简单的条件语句 448

K.4.1 for 语句 449

K.4.2 递增和递减运算符 450

K.4.3 do-while 语句 452

K.4.4 多路的 if 语句 452

K.5 运算符和表达式 453

K.5.1 算术表达式 455

K.5.2 关系表达式和逻辑表达式 456

K.5.3 赋值表达式 456

K.5.4 位运算 457

K.6 迭代控制 457

K.7 多选择 460