第九章面向对象实现 面向对象实现主要包括两项工作 1把面向对象设计结果,翻译成用某种程 序语言书写的面向对象程序; 2测试并调试面向对象的程序 面向对象编程 面向对象测试
第九章 面向对象实现 面向对象实现主要包括两项工作: 1.把面向对象设计结果,翻译成用某种程 序语言书写的面向对象程序; 2.测试并调试面向对象的程序。 面向对象编程 面向对象测试
第一节面向对象编程 非面向对象的语言与面向对象的语 面向对象设计的结果,既可以用面向对 象语言,也可以用非面向对象语言实现。使 用非面向对象语言编写面向对象程序,必须 由程序员自己把面向对象概念映射到目标程 序中
第一节 面向对象编程 一、非面向对象的语言与面向对象的语 言 面向对象设计的结果,既可以用面向对 象语言,也可以用非面向对象语言实现。使 用非面向对象语言编写面向对象程序,必须 由程序员自己把面向对象概念映射到目标程 序中
例如,C语言本身并不直接支持类或对象 的概念,程序员只能利用结构( struct)定义 变量,由于不能直接在结构中定义函数,因 此必须利用指针间接定义相应的函数。另外, 所有非面向对象语言都不支持继承的实现 使用这类语言编程时,要么完全回避继承的 概念,要么在声明特殊化类时,把对一般化 类的引用嵌套在它里面
例如,C语言本身并不直接支持类或对象 的概念,程序员只能利用结构(struct)定义 变量,由于不能直接在结构中定义函数,因 此必须利用指针间接定义相应的函数。另外, 所有非面向对象语言都不支持继承的实现, 使用这类语言编程时,要么完全回避继承的 概念,要么在声明特殊化类时,把对一般化 类的引用嵌套在它里面
面向对象语言充分支持面向对象概念的 实现。从问题域到面向对象分析模型,从面 向对象模型到面向对象设计模型,最后从面 向对象设计模型到面向对象编程都具有一致 的表示方法。一致的表示方法既有利于在软 件开发过程中始终使用统一的概念,也有利 于维护人员理解软件的各种配置成分
面向对象语言充分支持面向对象概念的 实现。从问题域到面向对象分析模型,从面 向对象模型到面向对象设计模型,最后从面 向对象设计模型到面向对象编程都具有一致 的表示方法。一致的表示方法既有利于在软 件开发过程中始终使用统一的概念,也有利 于维护人员理解软件的各种配置成分
二、面向对象语言选择 80年代以来,面向对象语言像雨后春笋 样大量涌现,形成了两大类面向对象语 类是纯面向对象语言,如 Smalltalk和 Eiffel 等语言,着重支持面向对象方法硏究和快速 原型的实现;另一类是混合型面向对象语言 也就是在过程语言的基础上增加面向对象机 制,如C++等语言,它的目标是提高运行速 度和使传统程序员容易接受面向对象思想
二、面向对象语言选择 80年代以来,面向对象语言像雨后春笋 一样大量涌现,形成了两大类面向对象语言, 一类是纯面向对象语言,如Smalltalk和Eiffel 等语言,着重支持面向对象方法研究和快速 原型的实现;另一类是混合型面向对象语言, 也就是在过程语言的基础上增加面向对象机 制,如C++等语言,它的目标是提高运行速 度和使传统程序员容易接受面向对象思想
下面介绍几种典型的面向对象语言和选 择面向对象语言时应着重考察的一些技术特 点。下表是各种面向对象语言中使用的术语 对比
下面介绍几种典型的面向对象语言和选 择面向对象语言时应着重考察的一些技术特 点。下表是各种面向对象语言中使用的术语 对比
面向对象 Smalltalk-80 C Objective-C Eiffel 概念 术语 术语 术语 术语 对象 对象 对象 对象 对象 类 类 类 对象工厂对象工厂 方法 方法 成员函数 方法 例程 属性 实例变量 数据成员实例变量 属性 消息 消息 函数调用消息表达式例程施用 子类 子类 派生类 子类 后代 继承性 继承性 派生 继承性 继承性
面向对象 概念 Smalltalk-80 术语 C++ 术语 Objective-C 术语 Eiffel 术语 对象 对象 对象 对象 对象 类 类 类 对象工厂 对象工厂 方法 方法 成员函数 方法 例程 属性 实例变量 数据成员 实例变量 属性 消息 消息 函数调用 消息表达式 例程施用 子类 子类 派生类 子类 后代 继承性 继承性 派生 继承性 继承性
(一)几种典型的面向对象语言 1 Smalltalk smalltalk起源可追溯到20 世纪60年代后期,由美国的 Xerox公司Palo Ato研究中心(PARC)开发。 Smalltalk语 言在 Xerox paro经过了多次重大修改,最 终形成了 Smalltalk80版本。 Smalltalk-80全 面支持面向对象的概念,从上表可以看出二 者基本一致,表明了这种语言对OOP的深刻 景响
(一)几种典型的面向对象语言 1.Smalltalk Smalltalk起源可追溯到20 世纪60年代后期,由美国的Xerox公司Palo Alto研究中心(PARC)开发。Smalltalk语 言在Xerox PARC经过了多次重大修改,最 终形成了Smalltalk-80版本。Smalltalk-80全 面支持面向对象的概念,从上表可以看出二 者基本一致,表明了这种语言对OOP的深刻 影响
除了概念上的景响作用外, Smalltalk80 对oOP的其它主要贡献是构成其开发环境的 两个要素:窗口化的程序设计工具和类库 Smalltalk-80实际上与开发环境不可分离。 这个环境同样是用类和对象实现的,提供了 组对象管理功能,具有多窗口、图形化的 用户界面和一组程序设计工具
除了概念上的影响作用外,Smalltalk-80 对OOP的其它主要贡献是构成其开发环境的 两个要素:窗口化的程序设计工具和类库。 Smalltalk-80实际上与开发环境不可分离。 这个环境同样是用类和对象实现的,提供了 一组对象管理功能,具有多窗口、图形化的 用户界面和一组程序设计工具
在这些工具的支持下,程序中的类、消 息和方法的实现都可以在不同的窗口中联机 地设计、实现、浏览和调试。 Smalltalk-80 是最早引入类库的语言。 Smalltalk80的类 库实际上就是语言的核,连语言的(伪)编 译程序、排错程序、编辑程序,也是基于类 库中的类实现的。用这种语言进行程序设计, 首先要了解并会使用它的类库
在这些工具的支持下,程序中的类、消 息和方法的实现都可以在不同的窗口中联机 地设计、实现、浏览和调试。Smalltalk-80 是最早引入类库的语言。Smalltalk-80的类 库实际上就是语言的核,连语言的(伪)编 译程序、排错程序、编辑程序,也是基于类 库中的类实现的。用这种语言进行程序设计, 首先要了解并会使用它的类库