图书介绍

面向对象编程导论 原书第3版PDF|Epub|txt|kindle电子书版本网盘下载

面向对象编程导论 原书第3版
  • (美)Timothy A.Budd著;黄明军,李桂杰译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111126661
  • 出版时间:2003
  • 标注页数:465页
  • 文件大小:35MB
  • 文件页数:480页
  • 主题词:面向对象语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

面向对象编程导论 原书第3版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

1.1 为什么OOP这么流行1

第1章 面向对象思想1

1.2 语言和思维2

1.2.1 爱斯基摩人和雪2

1.2.2 关于计算机语言的一个例子2

1.2.3 丘奇猜想和沃夫假说4

1.3 一个新的范例5

1.4 一种观察世界的方式6

1.4.1 代理和团体6

1.4.2 消息和方法7

1.4.4 类和实例8

1.4.5 类的层次——继承8

1.4.3 责任8

1.4.6 方法绑定与改写10

1.4.7 面向对象概念总结10

1.5 模拟计算11

1.5.1 隐喻的力量11

1.5.2 避免无限回归12

1.6 一段简史13

小结13

进一步阅读材料14

自学提问16

练习16

第2章 抽象17

2.1 抽象层次18

2.2 抽象的其他形式20

2.2.2 封装和互换性21

2.2.1 部分分化21

2.2.3 接口和实现22

2.2.4 服务视角22

2.2.5 复合法23

2.2.6 特化分层24

2.2.7 模式26

2.3 抽象机制的发展简史26

2.3.1 汇编语言26

2.3.2 过程27

2.3.3 模块28

2.3.4 抽象数据类型29

2.3.5 以服务为中心的观点30

2.3.6 消息、继承和多态30

小结30

进一步阅读材料31

自学提问32

练习32

第3章 面向对象设计33

3.1 责任意味着无干扰33

3.2 小项目编程与大项目编程34

3.3 为什么从行为开始34

3.4 一个RDD实例35

3.4.1 交互式智能厨房助手35

3.4.2 通过场景工作36

3.4.3 组件的标识36

3.5 CRC卡——记录责任37

3.5.1 给组件一个物理表示37

3.5.2 “什么/谁”循环37

3.6 组件和行为38

3.5.3 文档38

3.6.1 延迟决定39

3.6.2 为变化做准备39

3.6.3 继续场景40

3.6.4 交互图表41

3.7 软件组件42

3.7.1 行为和状态42

3.7.2 实例和类42

3.7.3 耦合性和内聚性43

3.7.4 接口和实现——Parnas原则43

3.8 形式化接口44

3.9 设计表现45

3.10 实现组件45

3.12 维护和升级46

3.11 组件集成46

小结47

进一步阅读材料47

自学提问47

练习48

第4章 类和方法49

4.1 封装49

4.2 类定义50

4.2.1 C++、Java和C#语言50

4.2.2 Apple Object Pascal和Delphi Pascal语言51

4.2.3 Smalltalk语言52

4.2.4 其他语言53

4.3 方法54

4.3.2 常量或不可变数据字段56

4.3.1 类中方法的声明次序56

4.3.3 定义和实现的分离57

4.4 关于类主题的变化60

4.4.1 Oberon语言中不属于类的方法60

4.4.2 接口61

4.4.3 属性61

4.4.4 向前定义62

4.4.5 内部类(或嵌套类)63

4.4.6 类的数据字段66

4.4.7 作为对象的类67

小结68

进一步阅读材料68

练习69

自学提问69

第5章 消息、实例和初始化71

5.1 消息传递语法71

5.2 静态类型语言和动态类型语言72

5.3 从方法内部存取接收器73

5.4 对象的创建75

5.5 指针和内存分配76

5.6 构造函数79

5.6.1 正统规范的类形式82

5.6.2 常数值82

5.7 析构函数和终止器84

5.8 Smalltalk语言中的元类86

小结87

练习88

自学提问88

进一步阅读材料88

第6章 案例研究:八皇后问题91

6.1 八皇后问题91

6.2 使用生成器92

6.2.1 初始化93

6.2.2 找到解决方案93

6.2.3 前进到下一位置94

6.3 用几种语言实现八皇后问题94

6.3.1 用Object Pascal语言实现八皇后问题95

6.3.2 用C++语言实现八皇后问题97

6.3.3 用Java语言实现八皇后问题99

6.3.4 用Objective-C语言实现八皇后问题102

6.3.5 用Smalltalk语言实现八皇后问题104

6.3.6 用Ruby语言实现八皇后问题106

小结107

进一步阅读材料107

自学提问107

练习107

第7章 案例研究:台球游戏109

7.1 台球元素109

7.2 图形对象109

7.2.1 桌壁图形对象110

7.2.2 洞口图形对象111

7.2.3 球图形对象112

7.3 主程序115

7.4 使用继承116

自学提问118

小结118

进一步阅读材料118

练习119

第8章 继承与替换121

8.1 关于继承的直观描述121

8.1.1 “是一个”检验121

8.1.2 使用继承的原因122

8.2 不同语言中的继承123

8.3 子类、子类型和替换124

8.4 改写和虚拟方法125

8.5 接口和抽象类127

8.6.1 特化子类化(子类型化)128

8.6.2 规范子类化128

8.6 继承的形式128

8.6.3 构造子类化129

8.6.4 泛化子类化129

8.6.5 扩展子类化130

8.6.6 限制子类化130

8.6.7 变体子类化130

8.6.8 结合子类化131

8.6.9 各种继承形式小结131

8.7 关于继承的变体131

8.7.1 Java语言中的匿名类131

8.7.2 继承和构造函数132

8.7.3 虚拟析构函数133

8.8.5 快速原型法134

8.8.4 软件组件134

8.8.3 接口的一致性134

8.8.2 代码共享134

8.8.1 软件可复用性134

8.8 继承的优点134

8.8.6 多态和框架135

8.8.7 信息隐藏135

8.9 继承的代价135

8.9.1 程序执行速度135

8.9.2 程序大小135

8.9.3 消息传递的开销136

8.9.4 程序复杂性136

小结136

进一步阅读材料136

练习137

自学提问137

第9章 案例研究:纸牌游戏139

9.1 PlayingCard类139

9.2 数据类和视图类139

9.3 游戏141

9.4 牌堆——使用继承142

9.4.1 缺省牌堆144

9.4.2 花色堆144

9.4.3 待用堆145

9.4.4 丢弃堆146

9.4.5 桌面堆147

9.5 多种形式的游戏148

9.6 图形用户界面150

练习153

自学提问153

小结153

进一步阅读材料153

第10章 子类和子类型155

10.1 可替换性155

10.2 子类型155

10.3 可替换性悖论158

10.4 构造子类化158

10.5 动态类型语言160

10.6 前置条件和后置条件161

10.7 改进语义162

小结162

进一步阅读材料162

自学提问163

练习163

11.1 静态类型化和动态类型化165

第11章 静态行为和动态行为165

11.2 静态类和动态类166

11.2.1 运行时类型决定168

11.2.2 向下造型(反多态)169

11.2.3 非语言支持的运行时测试170

11.2.4 检验是否理解消息171

11.3 静态方法绑定和动态方法绑定171

小结174

进一步阅读材料174

自学提问174

练习174

第12章 替换的本质177

12.1 内存布局177

12.1.1 最小静态空间分配178

12.1.3 动态内存分配180

12.1.2 最大静态空间分配180

12.2 赋值182

12.3 复制和克隆184

12.3.1 Smalltatk语言和Objective-C语言中的复制184

12.3.2 C++语言中的拷贝构造函数184

12.3.3 Java语言中的克隆185

12.4 相同185

12.4.1 相同和同一186

12.4.2 相同检验的悖论186

小结188

进一步阅读材料188

自学提问188

练习189

13.1 分类化继承191

第13章 多重继承191

13.2 多重继承带来的问题193

13.2.1 名称歧义193

13.2.2 对替换的影响195

13.2.3 Eiffel语言中的重定义196

13.2.4 CLOS语言的类排序解决方案197

13.3 接口的多重继承199

13.4 继承于公共祖先202

13.5 内部类205

小结205

进一步阅读材料206

自学提问206

练习206

14.1 编程语言中的多态207

第14章 多态及软件复用207

14.2 软件复用机制208

14.2.1 使用组合209

14.2.2 使用继承211

14.2.3 组合和继承的比较212

14.3 效率和多态213

14.4 软件复用的普及会成为现实吗213

小结214

进一步阅读材料214

自学提问214

练习215

第15章 重载217

15.1 类型签名和范畴217

15.2 基于范畴的重载218

15.3 基于类型签名的重载219

15.4 重定义226

15.5 多价227

15.6 多方法229

小结231

进一步阅读材料232

自学提问232

练习232

第16章 改写235

16.1 标识改写236

16.2 代替与改进237

16.2.1 Smalltalk语言中的代替238

16.2.2 Beta语言中的改进240

16.2.3 改进与子类/子类型之间的差异242

16.2.4 CLOS语言中的封装243

16.3 延迟方法243

16.4 改写与遮蔽244

16.5 协方差与反协方差246

16.6 改写的变体250

16.6.1 Java语言中的final方法250

16.6.2 C#语言中的版本化251

小结252

进一步阅读材料252

自学提问252

练习253

第17章 多态变量255

17.1 简单多态变量255

17.2 接收器变量256

17.2.1 多态变量在框架中的作用258

17.2.2 Smalltalk语言中的端点比较259

17.2.3 self和super260

17.3 向下造型261

17.4 纯多态263

小结264

进一步阅读材料264

自学提问264

练习264

第18章 泛型267

18.1 模板函数267

18.2 模板类268

18.3 模板参数中的继承270

18.4 案例研究:结合分离的类272

小结275

进一步阅读材料275

自学提问276

练习276

第19章 容器类277

19.1 动态类型语言中的容器277

19.2 静态类型语言中的容器279

19.2.1 类型化和复用之间的关系279

19.2.2 替换和向下造型280

19.2.3 使用替换和改写284

19.2.4 参数化类286

19.3 限制元素类型287

19.4 元素遍历289

19.4.1 迭代器循环290

19.4.2 访问器方法291

小结294

进一步阅读材料295

自学提问295

练习296

第20章 案例研究:标准模板库297

20.1 迭代器298

20.2 函数对象299

20.3 样例程序——库存系统301

20.4 样例程序——图表302

20.4.1 最短路径算法304

20.4.2 开发数据结构305

20.5 词汇索引308

进一步阅读材料310

小结310

20.6 OOP的未来310

自学提问311

练习311

第21章 框架313

21.1 复用和特化313

21.1.1 高级抽象和低级抽象314

21.1.2 倒置库316

21.2 样例框架317

21.2.1 Java Applet API317

21.2.2 模拟框架318

21.2.3 事件驱动的模拟框架319

小结324

进一步阅读材料324

练习325

自学提问325

第22章 框架实例:AWT和Swing327

22.1 AWT的类继承层次327

22.2 布局管理器329

22.3 监听器331

22.4 用户界面组件333

22.5 案例研究:颜色显示335

22.6 Swing组件库338

22.6.1 导入库338

22.6.2 不同的组件338

22.6.3 不同的绘制协议338

练习339

自学提问339

进一步阅读材料339

小结339

22.6.4 为窗口增加组件339

第23章 对象互连341

23.1 耦合和内聚341

23.1.1 耦合的种类341

23.1.2 内聚的种类344

23.1.3 德墨特尔法则345

23.1.4 类级别可视性与对象级别可视性346

23.1.5 活动值347

23.2 子类客户和用户客户347

23.3 存取控制和可视性348

23.3.1 Smalltalk语言中的可视性348

23.3.3 C++语言中的可视性349

23.3.2 Object Pascal语言中的可视性349

23.3.4 Java语言中的可视性352

23.3.5 Objective-C语言中的可视性354

23.4 有意依赖性354

小结355

进一步阅读材料355

自学提问355

练习356

第24章 设计模式357

24.1 控制信息流357

24.2 描述模式358

24.3 迭代器359

24.4 软件工厂360

24.5 策略360

24.7 组合361

24.6 单件361

24.8 装饰器363

24.9 双调度模式363

24.10 享元365

24.11 代理365

24.12 外观366

24.13 观察者366

小结367

进一步阅读材料367

练习368

25.1.1 类对象368

自学提问368

第25章 反射和内省369

25.1 理解机制369

25.1.2 字符串形式的类名称370

25.1.3 检测对象类371

25.1.4 通过类建立实例372

25.1.5 检测对象是否理解消息373

25.1.6 类行为373

25.2 作为对象的方法374

25.3 修改机制375

25.3.1 Smalltalk语言中的方法编辑375

25.3.2 Java语言中的动态类加载375

25.4 元类377

小结378

进一步阅读材料379

自学提问379

第26章 分布式对象381

26.1 地址、端口和套接字382

26.2 一个简单的客户/服务器程序383

26.3 多客户端384

26.4 通过网络传输对象389

26.5 更复杂的技术392

小结392

进一步阅读材料392

自学提问393

练习393

第27章 实现395

27.1 编译器和解释器395

27.2 作为参数的接收器395

27.3 继承方法396

27.3.2 裁剪问题397

27.3.1 多重继承的问题397

27.4 改写方法398

27.5 名称编码400

27.6 分派表400

27.7 字节码解释器402

27.8 即时编译404

小结404

进一步阅读材料404

自学提问405

练习405

附录A 八皇后问题的源代码407

附录B 台球游戏的源代码421

附录C 纸牌游戏的源代码433

术语表443

参考文献455

热门推荐