文件名称:面向对象方法与技术讲义
文件大小:1.91MB
文件格式:PPT
更新时间:2014-11-14 03:22:10
面向对象方法与技术讲义
面向对象方法与技术讲义第一章 面向对象思想 ......................................................................................... 1 1.1什么是面向对象 ..................................................................................... 1 1.2为什么OOP 这么流行 ........................................................................... 3 1.3语言和思维 ............................................................................................. 3 1.3.1爱斯基摩人和雪 .......................................................................... 4 1.3.2关于计算机语言的一个例子 ...................................................... 4 1.4一种观察世界的方式 ............................................................................. 5 1.4.1代理和团体 .................................................................................. 5 1.4.2消息和方法 .................................................................................. 6 1.4.3责任 .............................................................................................. 7 1.4.4面向对象基本特征 ...................................................................... 7 1.5面向对象简史 ......................................................................................... 8 1.5.1雏形阶段 ...................................................................................... 8 1.5.2完善阶段 ...................................................................................... 9 1.5.3繁荣阶段 ...................................................................................... 9 1.5.4面向对象开发方法简史 ............................................................ 10 1.6面向对象编程小结 ............................................................................... 11 第二章 面向对象编程与非面向对象编程 ....................................................... 13 2.1面向对象编程与非面向对象编程 ....................................................... 13 2.2面向对象语言中的基本概念概述 ....................................................... 14 2.2.1类、对象、方法、消息 ............................................................ 14 2.2.2继承 ............................................................................................ 16 2.2.3方法绑定和改写 ........................................................................ 18 2.2.4多态 ............................................................................................ 18 第三章 抽象 ....................................................................................................... 19 3.1抽象层次 ............................................................................................... 19 3.1.1团体 ............................................................................................ 19 3.1.2单元 ............................................................................................ 20 3.1.3客户和服务器 ............................................................................ 20 3.1.4抽象行为的具体实现 ................................................................ 21 3.1.5方法的实现逻辑 ........................................................................ 21 3.2抽象的其他形式 ................................................................................... 21 3.2.1部分分化 .................................................................................... 21 3.2.2封装和互换性 ............................................................................ 22 3.2.3接口和实现 ................................................................................ 22 3 3.2.4服务视角 .................................................................................... 23 3.2.5复合法 ........................................................................................ 24 3.2.6特化分层 .................................................................................... 24 3.2.7模式 ............................................................................................ 24 3.3抽象机制的发展简史 ........................................................................... 25 3.3.1汇编语言 .................................................................................... 25 3.3.2过程 ............................................................................................ 25 3.3.3模块 ............................................................................................ 26 3.3.4抽象数据类型 ............................................................................ 26 3.3.5面向对象编程 ............................................................................ 27 第四章 类和方法 ............................................................................................... 29 4.1类定义 ................................................................................................... 29 4.2方法 ....................................................................................................... 30 4.3接口 ....................................................................................................... 31 4.4属性 ....................................................................................................... 31 4.5向前定义 ............................................................................................... 32 4.6内部类(或嵌套类) ........................................................................... 33 4.7类的数据字段 ....................................................................................... 33 4.8作为对象的类 ....................................................................................... 34 第五章 消息、实例和初始化 ........................................................................... 35 5.1消息传递语法 ....................................................................................... 35 5.2静态类型语言和动态类型语言 ........................................................... 36 5.3伪变量 ................................................................................................... 37 5.4对象的创建 ........................................................................................... 37 5.5指针和内存分配 ................................................................................... 38 5.6构造函数 ............................................................................................... 40 5.7析构函数和终止器 ............................................................................... 42 第六章 继承与替换 ........................................................................................... 43 6.1继承的描述 ........................................................................................... 43 6.2“是一个”检验 .................................................................................... 43 6.3使用继承的原因 ................................................................................... 43 6.4不同语言中的继承 ............................................................................... 44 6.5子类、子类型和替换 ........................................................................... 44 6.6改写和虚拟方法 ................................................................................... 47 6.7接口和抽象类 ....................................................................................... 47 6.8继承的形式 ........................................................................................... 48 6.8.1特化子类化(子类型化) ........................................................ 48 6.8.2规范子类化 ................................................................................ 48 4 6.8.3构造子类化 ................................................................................ 49 6.8.4泛化子类化 ................................................................................ 49 6.8.5扩展子类化 ................................................................................ 50 6.8.6限制子类化 ................................................................................ 50 6.8.7变体子类化 ................................................................................ 51 6.8.8结合子类化 ................................................................................ 51 6.9一些继承的变体 ................................................................................... 52 6.9.1Java 语言中的匿名类 ................................................................. 52 6.9.2继承和构造函数 ........................................................................ 52 6.10继承的优点 ......................................................................................... 52 6.10.1软件可复用性 .......................................................................... 52 6.10.2代码共享 .................................................................................. 53 6.10.3接口的一致性 .......................................................................... 53 6.10.4软件组件 .................................................................................. 53 6.10.5快速原型法 .............................................................................. 53 6.10.6多态和框架 .............................................................................. 54 6.10.7信息隐藏 .................................................................................. 54 6.11继承的代价 ......................................................................................... 55 6.11.1 程序执行速度 .......................................................................... 55 6.11.2 程序大小 .................................................................................. 55 6.11.3 消息传递的开销 ...................................................................... 55 6.11.4 程序复杂性 .............................................................................. 56 第七章 静态行为和动态行为 ........................................................................... 57 7.1静态类型化和动态类型化 ................................................................... 57 7.2运行时类型决定 ................................................................................... 60 7.3向下造型(反多态) ........................................................................... 60 7.4静态方法绑定和动态方法绑定 ........................................................... 61 第八章 替换的本质 ........................................................................................... 63 8.1内存布局 ............................................................................................... 63 8.1.1最小静态空间分配 .................................................................... 63 8.1.2最大静态空间分配 .................................................................... 65 8.1.3动态内存分配 ............................................................................ 66 8.2赋值 ....................................................................................................... 66 8.3复制和克隆 ........................................................................................... 67 8.3.1C++语言中的拷贝构造函数 ...................................................... 67 8.3.2Java 语言中的克隆 ..................................................................... 68 8.4相同 ....................................................................................................... 71 8.4.1相同和同一 ................................................................................ 72 5 8.4.2相同检验的悖论 ........................................................................ 73 第九章 多重继承 ............................................................................................... 75 9.1多重继承带来的问题 ........................................................................... 75 9.1.1名称歧义 .................................................................................... 75 9.1.2对替换的影晌 ............................................................................ 77 9.2接口的多重继承 ................................................................................... 78 9.3继承于公共祖先 ................................................................................... 79 9.4内部类 ................................................................................................... 81 第十章 多态及软件复用概述 ........................................................................... 83 10.1编程语言中的多态 ............................................................................. 83 10.2软件复用机制 ..................................................................................... 84 10.2.1使用组合 .................................................................................. 84 10.2.2使用继承 .................................................................................. 85 10.2.3组合和继承的比较 .................................................................. 85 第十一章 重载 ................................................................................................... 88 11.1类型签名和范畴 ................................................................................. 88 11.2基于范畴的重载 ................................................................................. 89 11.3基于类型签名的重载 ......................................................................... 89 11.4重定义 ................................................................................................. 93 第十二章 改写 ................................................................................................... 95 12.1标识改写 ............................................................................................. 95 12.2代替与改进 ......................................................................................... 96 12.3延迟方法 ............................................................................................. 97 12.4改写与遮蔽 ......................................................................................... 98 12.5协方差与反协方差 ........................................................................... 100 12.6改写的变体 ....................................................................................... 103 12.6.1Java 语言中的final方法 ....................................................... 103 12.6.2C#语言中的版本化 ................................................................ 103 第十三章 多态变量 ......................................................................................... 105 13.1接收器变量 ....................................................................................... 105 13.2多态变量在框架中的作用 ............................................................... 105 13.3纯多态 ............................................................................................... 106 第十四章 泛型 ................................................................................................. 108 14.1模板函数 ........................................................................................... 108 14.2模板类 ............................................................................................... 109 14.3案例研究 ........................................................................................... 110 第十五章 框架 ................................................................................................. 113 15.1复用和特化 ....................................................................................... 113 6 15.2倒置库 ............................................................................................... 117 第十六章 对象互连 ......................................................................................... 118 16.1耦合和内聚 ....................................................................................... 118 16.1.1耦合的种类 ............................................................................ 119 16.1.2内聚的种类 ............................................................................ 119