第7章-面向对象的程序设计概要.ppt_第1页
第7章-面向对象的程序设计概要.ppt_第2页
第7章-面向对象的程序设计概要.ppt_第3页
第7章-面向对象的程序设计概要.ppt_第4页
第7章-面向对象的程序设计概要.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程SoftwareEngineering 武汉大学计算机学院 第7章面向对象程序设计语言 程序设计语与软件设计方法几种典型面向对象程序设计语言面向对象程序设计语言的选择面向对象程序设计风格 一 程序设计语与软件设计方法 语言研究先于方法研究过程性语言与结构化程序设计方法过程性语言 50 60年代末 FORTRAN ALGOL COBOL APL I等写程序方便 程序规模越来越大 正确性与可靠性成为主要矛盾结构化程序设计方法 并发展为SA SD的软件开发方法 方法又促进结构化程序设计语言的发展 如Pascal Ada等 一 程序设计语与软件设计方法 面向对象语言与面向对象方法60年代末 Simula 67 Smalltalk Eiffel等80年代初 抽象数据类型ADT AbstractDataType OOPL导制OOM方法的研究OOM又促进传统语言向面对象语言发展如object C C Java OOD的结果可以用OOPL 非OOPL实现 OOPL是一种程序设计风格 而不是一种具有构造继承性 封装性和多态的程序设计语言族的命名OOPL功能强于非OOPL 任何通用语言都可实现OO概念OOPL实现OO概念远比非OOPL方便 选择编程语言的关键一致的表达能力可重用性可维护性 错误 1 OOPL的优点 一致的表达方式OOA OOD OOP使用统一的概念可重用性好可重用OOA OOD OOP的结果可维护性好程序显式陈述问题域语义 几种典型OOPL Simula语言67年Simula的基础是ALGOL60 它沿用了ALGOL60的数据结构和控制结构 其主要特点 具有主程序概念 具有分程概念 引用了虚拟子程序概念与协同子程序概念 几种典型OOPL Smalltalk语言70年代初Smalltalk不是一种单纯的程序设计语言 而是反映面向对象程序设计思想的程序设计环境 其主要特点 无主程序概念 类是唯一构造程序的最小单位 每个对象都是某个类的实例 对象间通过消息通信 支持单继承 Eiffel语言主要特点 类是唯一程序构造单元 静态类与动态对象概念 支持多继承 提供有断言机制 延迟类 几种典型OOPL C 是目前使用最广泛的OOPL之一 其主要原因是它完全保留了传统优秀语言C的优点 并与C完全兼容 C 是C超集 增加了数据抽象 继承性机制 虚拟函数以及其他改善C语言结构的成分 使之成为一个灵活 高效和易移植的OOPL 总结 2 OOPL的技术特点 60年代SIMULA 类 继承70年代末 Modula 2 Ada 数据抽象机制80年代 OOPL纯OOPL Smalltalk Eiffel 混合型OOPL C 支持OO概念 支持类和对象概念实现整体 部分结构实现一般 特殊结构实现属性和服务提供类库和强大的开发环境 类型检查 按编译时进行类型检查的严格程度 分为强类型 StrongTyping 每个变量 属性 必须准确属于某个类C Eiffel等弱类型 WeakTyping 仅要求每个变量 属性 隶属于一个对象Smalltalk无类型 Foxpro等 强类型语言的优点 可靠利于在编译时发现程序错误高效增加了程序可读性可生成高效率目标代码强类型编译型语言 弱类型解释型语言 效率问题 许多人认为OOPL的主要缺点是效率低早期OOPL是解释型而非编译型的 类库运行时dynamicbinding实现多态性 要在运行时查找继承树 优化了查找过程 高效率查找C 虚函数表 ClassA Instancea1 3 选择OOPL应考虑的因素 将来能否占主导地位可重用性类库 开发环境其它因素 二 程序设计风格 提高可重用性提高方法的内聚减小方法的规模保持方法的一致性把策略与实现分开全面覆盖尽量不使用全局信息利用继承机制 提高可扩充性封装实现策略不要用一个方法遍历多条关联链避免使用多分支语句精心确定公有方法提高健壮性预防用户的操作错误检查参数合法性 小结 面向对象语言的优点 与OOM概念一致面向对象语言的技术特点 重用性 高内聚 独立性强选择面向对象语

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论