面向对象的软件开发.ppt

上传人:小飞机 文档编号:6213421 上传时间:2023-10-05 格式:PPT 页数:41 大小:1.14MB
返回 下载 相关 举报
面向对象的软件开发.ppt_第1页
第1页 / 共41页
面向对象的软件开发.ppt_第2页
第2页 / 共41页
面向对象的软件开发.ppt_第3页
第3页 / 共41页
面向对象的软件开发.ppt_第4页
第4页 / 共41页
面向对象的软件开发.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《面向对象的软件开发.ppt》由会员分享,可在线阅读,更多相关《面向对象的软件开发.ppt(41页珍藏版)》请在三一办公上搜索。

1、面向对象的程序设计,第一讲 面向对象的软件开发,面向对象的程序设计,第 2 页,第一讲 面向对象的软件开发,面向对象技术的发展历史 面向对象技术的基础知识 面向对象程序设计的优点,本 章 要 点,面向对象的程序设计,一、面向对象技术的发展历史,面向对象的程序设计,第 4 页,1、回顾结构化方法,程序设计语言只要顺序、选择和重复三种形式的控制结构就足以表达出各种其他形式的结构。采用过程抽象的方式,把软件视为处理流,并定义成由一系列步骤构成的算法。每一步骤都是带有预定输入和特定输出的一个过程,把这些步骤串联在一起可产生合理的稳定的贯通于整个程序的控制流,最终产生一个简单的具有静态结构的体系结构。,

2、面向对象的程序设计,第 5 页,1、回顾结构化方法,数据抽象、数据结构根据算法步骤的要求开发,它贯穿于过程,提供过程所要求操作的信息。系统的状态是一组全局变量,这组全局变量保存状态的值,把它们从一个过程传送到另一个过程。,面向对象的程序设计,第 6 页,1、回顾结构化方法,缺点:1)复用困难2)牵一发而动全身3)为了适应变化,要精心设计函数接口,导致函数接口的日益复杂,面向对象的程序设计,第 7 页,2、面向对象方法的提出,面向对象方法把问题论域中的主要实体做为系统开发的起点,主要考虑对象的行为而不是必须执行的一系列动作。在面向对象方法中,对象是数据抽象与过程抽象的综合。系统状态保存在各数据抽

3、象所定义的数据存储中。控制流包含在各个数据抽象中的操作内,算法被分布到各种实体中。,面向对象的程序设计,第 8 页,2、面向对象方法的提出,在使用面向对象方法开发的系统之中,系统结构基于对象间的交互。系统中某一部分的改变仅仅产生局部影响。其组成部分如下:面向对象分析(OOA)面向对象设计(OOD)面向对象程序设计(OOP)即:OOSD=OOA+OOD+OOP。,面向对象的程序设计,第 9 页,3、面向对象方法的基本思想,尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(即问题域)与实现解法的解空间(即求解域)在结构上尽可

4、能一致。,面向对象的程序设计,第 10 页,人类对客观事物的认知过程从一般到特殊的演绎过程从特殊到一般的归纳方法,3、面向对象方法的基本思想,面向对象的程序设计,第 11 页,3、面向对象方法的基本思想,面向对象方法提供了抽象和归纳的机制,面向对象的程序设计,第 12 页,3、面向对象方法的基本思想,符合人类认知规律的软件开发过程,面向对象的程序设计,二、面向对象技术的基础知识,面向对象的程序设计,第 14 页,1、什么是对象?,在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。例如,一名

5、职工、一家公司、一个窗口、一座图书馆、一本图书、贷款和借款等,都可以作为一个对象。总之,对象是对问题域中某个实体的抽象,设立某个对象就反映了软件系统保存有关它的信息,并具有与它进行交互的能力。,面向对象的程序设计,第 15 页,1、什么是对象?,在不同场合具有不同的含义:问题空间:所有要研究的客观现实的全体称为问题空间或问题域,而把要研究的问题(客观世界中的实体)称之为问题空间的对象 解空间:所有的解(程序及执行程序的计算机)组成的集合称为解空间,把解(程序及执行程序的计算机实体)称做解空间的对象,面向对象的程序设计,第 16 页,1、什么是对象?,问题空间对象,面向对象的程序设计,第 17

6、页,1、什么是对象?,对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体,这个封装体有可以唯一标识它的名字,而且向外界提供一组服务。属性(attribute)表示对象的性质,属性值规定了对象所有可能的状态,一般只能通过执行对象的操作来改变。,面向对象的程序设计,第 18 页,1、什么是对象?,操作是指该对象可以展现的外部服务,它描述了对象执行的功能,若通过消息传递,还可以为其它对象使用。例如,大型客机可视为对象,它具有位置、速度、颜色、容量等属性,对于该对象可施行起飞、降落、加速、维修等操作,这些操作将或多或少地改变飞机的属性值(状态)。,面向对象的程序设计,第 19 页,1、什么是

7、对象?,对象:电视机,变更频道,请求开,请求关,调节音量,被封装的行为和状态,类是具有相同数据结构和相同操作的一组相似对象的抽象。即表示某些对象在属性和操作方面的共同特征。类是在对象之上的抽象,有了类以后,对象则是类的具体化,是类的实例。把一组对象的共同特性加以抽象并存贮在一个类中的能力,是面向对象技术最重要的一点!,面向对象的程序设计,第 20 页,2、类的概念,类是建立对象时使用的“样板”,按照这个样板所建立的一个个具体的对象,就是类的实例。实例是某个具体类所描述的一个具体对象,如:“张三”、“李四”是类“中国人”的实例。对象既可以是一个具体的对象,也可以泛指一般的对象;而实例只能是一个具

8、体的对象。,面向对象的程序设计,第 21 页,3、实例的概念,面向对象的程序设计,第 22 页,类与实例,class,object,attribute abstract,面向对象的程序设计,第 23 页,4、消息的概念,对象之间进行通讯的一种构造叫做消息。当一个消息发送给某个对象时,包含要求接收对象去执行某些活动的信息。接收到消息的对象经过解释,然后予以响应。这种通讯机制叫做消息传递。发送消息的对象不需要知道接收消息的对象如何对请求予以响应。通常一个消息由三部分组成:1)接收消息的对象;,面向对象的程序设计,第 24 页,2)消息标识符(即消息名)3)零个或多个变元访问一个方法的过程称为向这个

9、对象发送一个消息,4、消息的概念,面向对象的程序设计,第 25 页,5、面向对象的基本特征-封装性,在面向对象的程序中,把数据和实现操作的代码集中起来放在对象内部。一个对象好像是一个不透明的黑盒子,表示对象状态的数据和实现操作的代码与局部数据都被封装在黑盒子里面,从外面是看不见的,更不能从外面直接访问和修改这些数据和代码。使用对象的时候只需要知道他向外界提供的接口的形式,无须知道它的数据结构细节和实现操作的算法。,面向对象的程序设计,第 26 页,5、面向对象的基本特征-继承性,广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象技术中,继承是子类自动地共享基类中定义

10、的数据和方法的机制。继承性是面向对象程序设计语言不同于其他语言的最主要的特点!继承具有传递性,如果类C继承类B,类B继承类A,则类C继承类A,面向对象的程序设计,第 27 页,5、面向对象的基本特征-继承性,面向对象的程序设计,第 28 页,5、面向对象的基本特征-继承性,继承使得相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余信息,同时使得对软件的修改变得容易;继承使得用户在开发新的应用系统时不必完全重新开始,可以继承原有的相似系统或从类库中选取需要的类,在派生出新的类以实现所需要的功能;有了继承机制以后,还可以把已有的一般性的解加以具体化,来达到软件重用的目的。,面向对象的

11、程序设计,第 29 页,5、面向对象的基本特征-多态性,面向对象的核心内容是对象,封装,继承,多态和消息机制,其中多态就是为了描述现实世界的多样性的,也是面向对象中最为重要的特性,可以这么说,不掌握多态,就没有真正地掌握面向对象技术。简单的说,多态就是“相同的表达式,不同的操作”,也可以说成是“相同的命令,不同的操作”,面向对象的程序设计,第 30 页,5、面向对象的基本特征-多态性,每天上班时间一到,相当于发了一条这样的命令:“员工.开始上班”(同一条表达式),比如在公司中有各种职责不同的员工(程序员,业务员,文管等),他们“上班”时,做不同的事情(也可以看作是一种业务逻辑),我们把他们各自

12、的工作都抽象为“上班”,关系如下:,面向对象的程序设计,第 31 页,6、类与类之间的关系,继承,关联,Person,House,residence,0.*,关联类,ordered,面向对象的程序设计,第 32 页,6、类与类之间的关系,类图是由类及类与类之间的关系组成。我们定义了类以后,就必须识别、描述类与类间的关系。通常,类与类之间的关系具有如下几种类型1)关联2)聚合和组合3)泛化,面向对象的程序设计,三、面向对象程序设计方法的优点,面向对象的程序设计,第 34 页,1、与人类习惯的思维方法一致,传统方法学以算法为核心数据和过程相互独立解空间与问题空间不一致,难于理解面向对象方法学以对象

13、为核心数据(静态属性)和过程(动态行为)封装在一起解空间模拟客观世界,面向对象的程序设计,第 35 页,2、稳定性好,传统方法学开发过程基于功能分析和功能分解软件结构依赖于系统所要完成的功能,功能需求发生变化时引起软件结构的整体修改面向对象方法学基于构造问题领域的对象模型功能需求变化时仅需要做局部性的修改由于现实世界中的实体是相对稳定的,以对象为中心构造的软件系统也比较稳定,面向对象的程序设计,第 36 页,3、可重用性好,传统方法学利用标准函数库实现软件重用标准函数缺乏必要的“柔性”,并不是理想的可重用的软件成分面向对象方法学利用继承机制实现重用对象固有的封装性和信息隐藏机制,具有较强的独立

14、性,是比较理想的可重用的软件成分,面向对象的程序设计,第 37 页,4、可扩展性好,适合于在快速原型的软件开发方法中使用对模块化技术更有效的支持,面向对象的程序设计,第 38 页,5、较易开发大型软件产品,每个对象就像一个微型程序,具有自己的数据、操作、功能和用途把大型软件产品分解成为一系列本质上相互独立的小产品来处理,降低开发难度,易于管理,面向对象的程序设计,第 39 页,6、可维护性好,面向对象的软件稳定性比较好面向对象的软件比较容易修改类是理想的模块机制,修改类很少会牵扯到其他类特有的继承机制使得对软件的修改和扩充易于实现多态性机制使得对扩充软件功能时对软件原有代码的修改进一步减少面向对象的软件比较容易理解易于测试和调试,面向对象的程序设计,第 40 页,OO成为主流是技术发展的必然趋势!,结论,面向对象的程序设计,第 41 页,结论,OO方法是扬弃,不是否定!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号