第11章面向对象的软件开发方法.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章面向对象的软件开发方法.ppt

主讲老师:刘志强 第11章 面向对象的软件 开发方法 一、面向对象的基本概念 “面向对象“: OO 代表着一种新的思维方式,代表着一种新的程序设计方法的潮流。 “面向对象”追求软件系统对现实世界的直接模拟,尽量实现将现实世界中的事物直接映射到软件系统的解空间。 面向对象的程序设计技术是以对象为基础,以消息驱动对象实现操作的一种全新的程序设计方法。 面向对象方法的由来 OO方法最早出现在挪威奥斯陆大学和挪威计算中心共同研制的仿真语言Simula67中。 1980年随美国加州的Xerox研究中心推出的SmallTalk 80语言,使得OO方法得以较完善地实现。 90年代初,OO方法和OOP语言开始成熟。 2000,OO方法成为软件开发的首选方法受到越来越多的程序设计人员的青睐。 什么是面向对象方法 传统的程序设计方法: 从实际问题到求解模型(数学模型)的抽象都是围绕”怎样做?“去进行的。 人认识事物的规律: 当物体反映到头脑中后,变成意识,得到抽象的概念,及所谓逻辑世界。 逻辑世界: 由对象组成,表现现实世界中的某个具体的事物。对象有自己的属性和动作。 面向对象(OO)方法的出发点: ”是什么?“,即要求解的实际问题,它到底”是什么?“。 面向对象方法产生的背景 传统方法的历史功绩 对”软件生产工程化“曾起过重要的促进作用,部分缓解了软件危机。 传统方法的问题 并不能完全消除软件危机 生产率提高的幅度远不能满足需要 软件重用程度很低 软件维护困难 软件不能真正满足用户的需要 面向对象方法(OO) 就是在这种背景下诞生的。 现实世界与OO系统的对应关系 OO方法是将现实世界抽象为”对象是什么?“,所以说,OO方法是更高一级的抽象。它和人认识现实世界的方法是一致的。 面向对象程序设计OOP OOP (OOProgramming)将数据及对数据的操作放在一起,作为一个相互依存、不可分割的整体来处理。 OOP采用数据抽象和信息隐藏技术,它将对象和对对象的操作抽象成一种新的数据类型——类。 OOP方法是通过增加软件的可扩充性和可重用性来改善并提高软件的生产率的。 OOP的特点: 继承了SP的优点(任务分解、模块化) 抽象数据类型 继承性 封装性 可重用性 OO方法的4个要点 (1) 客观世界由各种对象组成 OO的软件系统也是由对象组成的;任何复杂的软件都是由简单的对象组合而成的; (2) 所有对象都可以划分为不同的对象类 (3) 每个对象类有自己特定的数据和方法 对象类具有层次结构;上层的类称为”父类“或”基类“,下层的类称为”子类“或”派生类“。子类可以继承父类的特性及操作; (4) 对象之间通过传递”消息“互相联系(消息机制) OO方法 = 对象 + 类 + 继承性 + 消息机制 OO方法的主要优点 与人类习惯的思维方法一致 从“是什么”开始,认识事物及其本质规律,主观随意性受到限制。 稳定性好 功能需求变化时,内在规律不变,因而不会引起软件系统结构的整体变化 可重用性好 可维护性好 面向对象程序设计语言OOPL OOPL两个显著的特征: 抽象数据类型 继承性 OOPL要提供: 特定的语法成分来保证和支持OOP;形式上要能够表现,语义上要能够处理; 继承性、多态性和动态链接机制,使得类和类库成为可重用的程序模块。 OOPL的发展史 1) LISP语言 50年代末发展起来的一种符号处理语言,是一种人工智能语言。1979年推出Flavors是LISP的OOPL版本。 2) Simula语言 60年代开发,在ALGOL60的基础上扩充。主要用于模拟。具有表加工等功能。 3) SmallTalk语言 第1个真正的OOPL,它体现了纯粹OOP设计思想。它起源于Simula,是最成功的一个版本。 4) C家族 C++是在C基础上扩充、增加了对象处理机制,将“类”看作是用户定义类型。由于C++的出现,才使OOPL越来越得到重视和广泛的应用。C++有许多种类:MS C++、Turbo C++、Borland C++ 和Visual C++等。 5) 其它语言的OO版本 Turbo PASCAL、Object PASCAL、Visual Basic等。 实体和对象 对象 客观世界中的实体均可以抽象为问题空间中的对象。 可以将要研究的任何事物作为对象; 对象可以是具体实体,还可以表示抽象实体,例如规则、算法、事件等。 对象——Object 对象的不同定义: 1) 从OOP的角度看 对象是具有相同状态的一组操作的集合 2) 从信息模拟的角度看 对象是对属性值和操作的封装 3) 从存储的角度看 对象是存储在计算机中的一块私有存储区 4) 形式化定义 对象::={ ID,MS,DS,MI} ID 标识符 MS 操作集合

您可能关注的文档

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档