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

  • 购买积分:15 如何计算积分?
  • 作  者:(美)Dennis Kafura著;袁晓华,石耀斌等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2003
  • ISBN:7111115813
  • 页数:500 页
图书介绍:本书主要介绍了如何用Java语言进行程序设计。

第1章 基本概念 1

1.1 引言 1

1.1.1 面向对象的策略 1

1.1.2 设计策略的定义 1

1.1.3 例子 3

1.1.4 UML 设计表示法 3

1.1.5 总的组织 4

1.2 抽象 5

1.3 分离 8

1.4 类、对象和抽象 11

1.4.1 类 12

1.4.2 对象 13

1.4.3 实例化类 14

1.4.4 从类中创建对象 14

1.4.5 抽象界面 15

1.5 合成 17

1.5.1 合成的概念 17

1.5.2 利用关联的合成 19

1.5.3 利用聚集的合成 21

1.6 概化 23

1.6.1 层次性 24

1.6.2 多态性 25

1.6.3 模式 27

1.7 组合在一起 29

1.7.1 与设计策略的关系 30

1.7.2 与软件工程的关系 31

1.7.3 定义小结 33

第2章 使用单个类的对象 34

2.1 引言 34

2.1.1 给类命名 34

2.1.2 创建类的对象 35

2.1.3 UML 表示法 37

2.2 类和对象的结构 38

2.2.1 公用部分与私用部分 38

2.2.2 公用界面中的方法 40

2.2.3 CUI 窗口的抽象 40

2.2.4 生态仿真中 Prey 的抽象 42

2.3 在 Java 应用程序中操作对象 45

2.3.1 将操作应用于一个 Prey 对象 45

2.3.2 构造并执行一个应用程序 45

2.3.3 一个示例程序 47

2.3.4 UML 对象表示法 47

2.4 在一个简单的编程环境中操作 GUI 对象 49

2.4.1 将操作应用于 Frame 对象 49

2.4.2 事件和反应式系统 50

2.4.3 一个简单的编程环境 50

2.4.4 Start 窗口 52

2.4.5 Simulator 窗口 53

2.4.6 示例程序 56

2.4.7 UML 对象表示法 58

2.5 命名常量 60

2.5.1 命名常量的作用 60

2.5.2 声明命名常量 61

2.5.3 访问命名常量 63

2.5.4 Prey 类中的命名常量 64

2.5.5 命名常量的 UML 表示法 64

2.6 重载的方法 66

2.6.1 GUI 类中重载的方法 66

2.6.2 Prey 类中重载的方法 68

2.6.3 UML 中重载的方法 68

2.7 Java 类中重载的方法 70

2.7.1 交互式 I/O 中重载的方法 70

2.7.2 输出到窗口的流 72

2.7.3 String 类中重载的方法 73

2.8 对象数组 75

2.8.1 声明对象数组 75

2.8.2 在数组中操作对象 78

2.8.3 处理数组 79

2.8.4 二维数组 81

2.9 管理对象 83

第3章 使用不同类的对象 87

3.1 引言 87

3.1.1 复杂信息 87

3.1.2 交互对象之间的相互关系 88

3.2 使用对象传递数据 88

3.2.1 在 GUI 类中使用对象通信 89

3.2.2 在生态仿真中使用对象通信 95

3.3.1 UML 顺序图 101

3.3 交互顺序 101

3.3.2 GUI 对象的交互顺序 102

3.3.3 Predator 类和 Prey 类的交互顺序 105

3.4 简单的关联 108

3.4.1 在 GUI 类中形成关联 108

3.4.2 简单的计数器和计时器 112

3.4.3 在生态仿真中使用关联 114

3.5 界面 118

3.5.1 GUI 例子中界面的作用 118

3.5.2 定义一个界面 119

3.5.3 实现一个界面 120

3.6 声明界面类型的参数 122

3.6.1 建立带界面的关联 123

3.6.2 生态仿真例子中的界面 123

3.6.3 实现 Hunted 界面 125

3.6.4 用 Hunted 界面声明参数 126

3.6.5 强制类型转换 127

3.6.6 实现多重界面 130

3.7 更复杂的关联 134

3.7.1 复杂用户界面的关联 134

3.7.2 重新组织 Frame 类和 Canvas 类 134

3.7.3 生态仿真中更复杂的关联 144

第4章 实现一个新类 151

4.1 引言 151

4.2 实现一个类 152

4.2.1 一般概念 152

4.2.2 一个简单的例子 152

4.2.3 同一个类中方法的调用 154

4.2.4 定义和调用私用方法 156

4.2.5 使用界面变量 158

4.2.6 封装 161

4.3.1 聚集的概念 162

4.3 聚集的作用 162

4.3.2 聚集的优点 167

4.3.3 聚集的类型 167

4.4 简单的静态聚集 168

4.4.1 生态仿真中的聚集 169

4.4.2 共享的子对象 170

4.5 更复杂的静态聚集 172

4.5.1 间接控制 172

4.5.2 实现 StopWatch 类 174

4.5.3 实现 Simulation 类 177

4.6 动态聚集 180

4.6.1 使用链表实现动态聚集 180

4.6.2 使用 Vector 实现动态聚集 184

4.7 “this”变量 187

4.7.1 链式构造函数 187

4.7.3 作为结果返回“this” 189

4.7.2 消除歧义性 189

4.7.4 作为参数传递“this”变量:回调 191

4.8 复制可变对象 193

第5章 产生一个面向对象的系统 199

5.1 引言 199

5.2 设计类 199

5.2.1 发现类设计 200

5.2.2 评价类设计 208

5.3 设计复杂的逻辑 213

5.4 调试 222

5.4.1 差错、缺陷和故障 222

5.4.2 调试工具的作用 224

5.4.3 调试环境 225

5.4.4 调试策略 228

5.5.1 包的用途 231

5.5 将相关的类组织成包 231

5.5.2 创建包 232

5.5.3 引入类 233

5.5.4 储存和查找包 234

5.5.5 限制对包成员的访问 235

5.6 对类编制文档 237

5.6.1 外部文档 237

5.6.2 javadoc 工具 238

5.6.3 Javadoc 中结构化的注释和标记 240

5.6.4 一个例子 241

第6章 继承 243

6.1 引言 243

6.2 利用继承来共享实现 244

6.2.1 概化两个数字类 244

6.2.2 概化 predator 和 prey 的抽象 250

6.3.1 用 DisplayableNumber 类的继承 253

6.3 继承方法和数据 253

6.3.2 利用 Animal 类的继承 259

6.4 替换继承的类 264

6.4.1 替换 Number 类中的一个方法 264

6.4.2 在 Predator 类中替换一个方法 266

6.5 扩展继承的方法 269

6.5.1 扩展 Cycler 类的方法 269

6.5.2 扩展 Predator 类中的方法 271

6.6 隐藏继承的方法 272

6.6.1 问题 272

6.6.2 解决方案 273

6.7 类型强制转换 276

6.7.1 概念 276

6.7.2 利用 DisplayableNumber 的一个例子 279

6.7.3 Java 类库中的类型强制转换 281

6.7.4 利用 Animal 类的类型强制转换 283

6.8 动态绑定、抽象方法和多态性 285

6.8.1 概念 285

6.8.2 举例 290

6.9 基类的重构 293

6.10 设计类的层次结构 295

6.10.1 基本原则 295

6.10.2 设计类层次结构的一个例子 298

6.11 设计模式 302

6.11.1 设计模式的定义和结构 302

6.11.2 设计模式的一个例子 303

6.11.3 小结 306

第7章 用 Java 语言创建用户界面 307

7.1 引言 307

7.2 用户界面的结构 309

7.3 两个简单的应用程序 322

7.3.1 DrawTool 应用程序 322

7.3.2 EditTool 应用程序 328

7.4 事件处理概念 332

7.5 处理简单应用程序中的事件 338

7.5.1 处理 DrawTool 中的事件 338

7.5.2 处理 EditTool 中的事件 343

7.6 菜单 347

7.7 复选框 358

7.8 列表 365

7.9 对话框 367

7.9.1 JDialog 类 368

7.9.2 JOptionPane 类 374

7.10 滚动条 377

7.10.1 利用值选择的滚动条 378

7.10.2 利用滚动条按比例移动 382

7.10.3 利用 ScrollPane 385

7.11 文本域 388

7.12.1 利用 Image 类 391

7.12 图像 391

7.12.2 利用 ImageIcon 类 399

7.13 布局管理器 400

7.13.1 BorderLayout 401

7.13.2 FlowLayout 403

7.13.3 GridLayout 405

7.13.4 CardLayout 407

7.13.5 GridBagLayout 410

7.13.6 组合几个布局管理器 417

第8章 Java 中的输入/输出 421

8.1 引言 421

8.1.1 输入/输出的复杂性 421

8.1.2 Java 输入/输出模型 422

8.1.3 文本和二进制流 I/O 类的模式 422

8.1.4 Book 例子 424

8.1.5 章的组织 425

8.2 二进制输入/输出 426

8.2.1 Java 类 426

8.2.2 一个例子 428

8.3 文本输入/输出 432

8.3.1 Java 类 432

8.3.2 一个例子 434

8.3.3 交互式输入/输出 441

8.4 随机存取文件输入/输出 444

8.4.1 概念 444

8.4.2 RandomAccessFile 类 445

8.4.3 Book 例子 445

8.5 对象输入/输出 449

8.5.1 Java 类 449

8.5.2 Book 文件例子 451

8.6.1 概念 453

8.6 输入/输出过滤 453

8.6.2 Java 类 454

8.6.3 一个例子 455

第9章 线程 458

9.1 引言 458

9.2 独立线程 459

9.2.1 Thread 类 459

9.2.2 一个例子 460

9.3.2 线程状态 465

9.3 同步线程 465

9.3.1 同步的概念 465

9.3.3 线程组 475

9.4 分布式并发 475

9.4.1 概念 478

9.4.2 套接字 480

9.4.3 EcoSim 例子 483

索引 493