《面向对象方法介绍ppt课件》由会员分享,可在线阅读,更多相关《面向对象方法介绍ppt课件(55页珍藏版)》请在金锄头文库上搜索。
1、面向对象方法的产生与开展面向对象方法的产生与开展面向对象技术概念面向对象技术概念OOOO方法的开发过程方法的开发过程面向对象分析面向对象分析(OOA)(OOA)面向对象设计面向对象设计(OOD)(OOD)第九部分第九部分 面向对象开发方法面向对象开发方法面向对象方法的产生与开展面向对象方法的产生与开展构造化方法的缺陷构造化方法的缺陷1 1问题空间与解空间不一致问题空间与解空间不一致2 2系统分析到系统设计的过渡困难系统分析到系统设计的过渡困难3 3过程模型和数据模型分别建立,过程模型和数据模型分别建立, 忽视了行为特征忽视了行为特征面向面向对象思想的由来象思想的由来 传统的的软件开件开发方法方
2、法 没有直接而没有直接而全面地反映全面地反映问题的本的本质 直接面直接面对问题域中客域中客观存在的事物来存在的事物来进展展软件开件开发 面向面向对象象希望希望4面向对象的言语出发点:出发点:更直接地描画客观世界中存在的事物更直接地描画客观世界中存在的事物( (对对象象) )以及它们之间的关系。以及它们之间的关系。特点:特点:是高级言语。是高级言语。将客观事物看作具有属性和行为的对象。将客观事物看作具有属性和行为的对象。经过笼统找出同一类对象的共同属性和经过笼统找出同一类对象的共同属性和行为,构成类。行为,构成类。经过类的承继与多态实现代码重用经过类的承继与多态实现代码重用5面向对象的言语优点:
3、点:使程序可以比使程序可以比较直接地反映直接地反映问题域的本域的本来面目,来面目,软件开件开发人人员可以利用人可以利用人类认识事物所采用的普通思想方法来事物所采用的普通思想方法来进展展软件开件开发。面向对象方法的开展情况 F 面向对象方法开展到软件工程的面向对象方法开展到软件工程的 F 前期阶段前期阶段: OOP : OOP 、OOA OOA 、OODOODF 当前的研讨及实际领域:当前的研讨及实际领域:F 面向对象的编程言语面向对象的编程言语F OOA OOA 、OODOODF 面向对象数据库面向对象数据库F 面向对象操作系统面向对象操作系统F 面向对象的软件开发环境面向对象的软件开发环境F
4、 图形用户界面开发技术图形用户界面开发技术F 面向对象的智能程序技术面向对象的智能程序技术F 面向对象体系构造面向对象体系构造7面向对象根本概念面向对象根本概念对象具有的特征对象具有的特征万物皆为对象万物皆为对象每个对象都有本人的独一标识每个对象都有本人的独一标识对象具有属性和行为对象具有属性和行为对象具有形状对象具有形状对象之间依托音讯实现通讯对象之间依托音讯实现通讯8举例:检查单词拼写程序 检查单词拼写程序将拼写程序将对用用户提供的提供的单词进展拼写展拼写检查,假,假设在字典中在字典中找到,找到,输出出“拼写正确的字拼写正确的字样,否,否那么那么输出出“拼写不正确的字拼写不正确的字样。9面
5、向对象的程序设计方法DictionaryDictionarySetWord面向对象程序面向对象程序= =对象对象+ +音讯音讯字典字典单词单词集合集合10面向对象根本概念面向对象根本概念根本概念根本概念对象对象objectobject类类(class)(class)音讯音讯(message)(message)接口接口(interface)(interface)承继性承继性(inheritance)(inheritance)封装性封装性(encapsulation)(encapsulation)多态性多态性(polymorphism)(polymorphism)11根本术语 笼统 指从事物中,舍
6、弃个指从事物中,舍弃个别的、非本的、非本质的的属性,抽取出共同的、本属性,抽取出共同的、本质的属性的的属性的过程,它是构成概念的必要手段。程,它是构成概念的必要手段。 笼统包括包括过程程笼统和数据和数据笼统。12封装封装 指将现实世界中某个客体的属性与行指将现实世界中某个客体的属性与行为聚集在一个逻辑单元内部的机制。为聚集在一个逻辑单元内部的机制。利用这种机制可以将属性信息隐藏起利用这种机制可以将属性信息隐藏起来,外界只可以经过提供的特定行为来,外界只可以经过提供的特定行为接口改动或获取其属性形状。接口改动或获取其属性形状。13对象象 对象是用来描画现实世界中客体的对象是用来描画现实世界中客体
7、的部件,是面向对象软件系统在运转部件,是面向对象软件系统在运转时辰的根本单位。为了区分属于同时辰的根本单位。为了区分属于同一个类的不同对象,每个对象都有一个类的不同对象,每个对象都有一个独一的标识。一个独一的标识。14属性属性行为行为1行为行为2行为行为3行为行为4行为行为5行为行为6行为行为8行为行为7 在面向对象的程序在面向对象的程序设计中,封装是指设计中,封装是指将对象的属性和行将对象的属性和行为分别用数据构造为分别用数据构造和方法描画,并将和方法描画,并将它们绑定在一同构它们绑定在一同构成一个可供访问的成一个可供访问的根本逻辑单元。根本逻辑单元。15类n类是一组具有一样属性特征的对象的
8、笼统描类是一组具有一样属性特征的对象的笼统描画,是面向对象程序设计的又一个中心概念。画,是面向对象程序设计的又一个中心概念。 n类是对象笼统的结果。有了类,对象就是类类是对象笼统的结果。有了类,对象就是类的详细化,是类的实例。类可以有子类,同的详细化,是类的实例。类可以有子类,同样也可以有父类,从而构成类的层次构造。样也可以有父类,从而构成类的层次构造。n类之间主要存在三种关系。它们是:关联、类之间主要存在三种关系。它们是:关联、聚合和泛化。聚合和泛化。16音音讯 音讯是一个对象要求另一个对象实施某项音讯是一个对象要求另一个对象实施某项操作的恳求。在一条音讯中,需求包含音操作的恳求。在一条音讯
9、中,需求包含音讯的接纳者和要求接纳者执行哪项操作的讯的接纳者和要求接纳者执行哪项操作的恳求,而并没有阐明应该怎样做,详细的恳求,而并没有阐明应该怎样做,详细的操作过程由接纳者自行决议。操作过程由接纳者自行决议。17 音讯传送是对象之间相互联络的独一途径。音讯传送是对象之间相互联络的独一途径。发送者发送音讯,接纳者经过调用相应的发送者发送音讯,接纳者经过调用相应的方法呼应音讯,这个过程被不断地反复,方法呼应音讯,这个过程被不断地反复,使得运用程序在人的有效控制下运转起来,使得运用程序在人的有效控制下运转起来,最终得到相应的结果。可以说,音讯是驱最终得到相应的结果。可以说,音讯是驱动面向对象程序运
10、转的源泉。动面向对象程序运转的源泉。18承承继 承继是类之间的一种常承继是类之间的一种常见关系。这种关系为共见关系。这种关系为共享数据和操作提供了一享数据和操作提供了一种良好的机制。经过承种良好的机制。经过承继,一个类的定义可以继,一个类的定义可以基于另外一个曾经存在基于另外一个曾经存在的类。承继是面向对象的类。承继是面向对象程序设计方法的一个重程序设计方法的一个重要标志,利用承继机制要标志,利用承继机制可以大大提高程序的可可以大大提高程序的可重用性和可扩展性。重用性和可扩展性。 父类父类子类子类19多多态性性 不同的类对象收到同一个音讯可以产生完不同的类对象收到同一个音讯可以产生完全不同的呼
11、应效果,这种景象叫做多态。全不同的呼应效果,这种景象叫做多态。利用多态机制,用户可以发送一个通用的利用多态机制,用户可以发送一个通用的音讯,而实现的细节由接纳对象自行决议,音讯,而实现的细节由接纳对象自行决议,这样,同一个音讯能够会导致调用不同的这样,同一个音讯能够会导致调用不同的方法。方法。 20面向对象的4个特性p 笼统性笼统性p 封装性封装性p 承继性承继性p 多态性多态性21面向对象程序设计言语 所谓面向对象程序设计言语所谓面向对象程序设计言语OOPL Object-Oriented Programming Language是指提供描画面向对象方法所是指提供描画面向对象方法所涉及到的类
12、、对象、承继和多态等根本概涉及到的类、对象、承继和多态等根本概念的程序设计言语。它应该具有以下特征:念的程序设计言语。它应该具有以下特征:识别性、分类性、承继性和多态性。识别性、分类性、承继性和多态性。 22几种有代表性的OOPLnSimula67,支持单承继、一定含义上的多态和部,支持单承继、一定含义上的多态和部分动态联编。分动态联编。nSmalltalk,支持单承继、多态和动态联编。,支持单承继、多态和动态联编。nEiffel,支持多承继、多态和动态联编。,支持多承继、多态和动态联编。nC+,支持多承继、多态和部分动态联编。,支持多承继、多态和部分动态联编。nJava,提供了类机制,以及有
13、效的接口模型。支,提供了类机制,以及有效的接口模型。支持单承继、多态和动态联编。持单承继、多态和动态联编。23Java言语的根本特点 q 简捷性简捷性q 面向对象面向对象q 分布式分布式q 强壮性强壮性q 构造中立构造中立q 平安性平安性q 可移植性可移植性q 解释执行解释执行q 高性能高性能24面向面向对象的象的软件工程件工程面向面向对象的分析,象的分析,简称:称:OOA面向面向对象的象的设计,简称:称:OOD面向面向对象程序象程序设计,简称:称:OOP面向面向对象的象的测试,简称:称:OOT面向面向对象数据象数据库系系统,简称:称:OODBMS面向面向对象象计算机算机软件件辅助工程,助工程
14、,简称:称:OOCASE25面向面向对象象软件工程件工程面向面向对象象“面向面向对象是一种象是一种认识客客观世界的世界世界的世界观,这种世界种世界观将客将客观世界看成是有世界看成是有许多不多不同种同种类的的对象构成的,每个象构成的,每个对象有本人象有本人的内部形状和运的内部形状和运动规律,不同律,不同对象之象之间的相互的相互联络、相互作用就构成了完好的、相互作用就构成了完好的客客观世界。世界。26面向面向对象象软件工程件工程面向面向对象象“面向面向对象是从构造象是从构造组织的角度去模的角度去模拟客客观世界的一种方法,世界的一种方法,这种方法的种方法的根本着眼点是构成客根本着眼点是构成客观世界的
15、那些成世界的那些成分分-对象。象。用用“面向面向对象的象的观念去念去认识客客观世界,世界,用用“面向面向对象的方法去模象的方法去模拟客客观世世界,界,这就构成了就构成了“面向面向对象的完好象的完好含含义。27面向面向对象象软件工程件工程 面向对象建模面向对象建模 面向对象思想比较自然地模拟了人类认面向对象思想比较自然地模拟了人类认识客观世界的方式,面向对象的分析和设计识客观世界的方式,面向对象的分析和设计应该从建模开场。构造模型通常出于以下几应该从建模开场。构造模型通常出于以下几个目地:个目地:在着手处理一个复杂问题之前,对处理方案进在着手处理一个复杂问题之前,对处理方案进展检测;展检测;用于
16、同客户或其他相关人员进展交流;用于同客户或其他相关人员进展交流;加强视觉效果;加强视觉效果;对复杂问题进展简化。对复杂问题进展简化。28面向面向对象象软件工程件工程面向对象建模面向对象建模模型是对事物的一种笼统,人们经常在正模型是对事物的一种笼统,人们经常在正式建造实物之前,首先建立一个简化的式建造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓模型,以便更透彻地了解它的本质,抓住问题的关键;住问题的关键;在模型中,人们总是剔除那些与问题无关在模型中,人们总是剔除那些与问题无关的、非本质的东西,从而使模型与真实的、非本质的东西,从而使模型与真实的实体相比更加简单、易于把握;的实体
17、相比更加简单、易于把握;29面向面向对象象软件工程件工程面向对象建模面向对象建模在建造一个复杂系统时,开发者必需从多在建造一个复杂系统时,开发者必需从多种不同的角度来笼统系统,运用准确的种不同的角度来笼统系统,运用准确的符号来构造模型,然后检查这些模型能符号来构造模型,然后检查这些模型能否符合系统的需求,并逐渐添加细节,否符合系统的需求,并逐渐添加细节,从而将这些模型转化成实现方案。从而将这些模型转化成实现方案。建模言语是面向对象建模中的一个非常关建模言语是面向对象建模中的一个非常关键的要素。键的要素。30规范建模言范建模言语UMLUMLUML的设计目的:的设计目的:运用面向对象概念来构造系统
18、模型运用面向对象概念来构造系统模型建立起从概念模型直至可执行体之间明显建立起从概念模型直至可执行体之间明显的对应关系的对应关系着眼于那些有艰苦影响的问题着眼于那些有艰苦影响的问题创建一种对人和机器都适用的建模言语创建一种对人和机器都适用的建模言语31规范建模言范建模言语UMLUMLUML概要概要UMLUML由由OMGOMG与与19971997年年1111月同意为规范建模言语月同意为规范建模言语(Booch,Jacobson,Runbaugh)(Booch,Jacobson,Runbaugh)。UMLUML建立在当今国际上最有代表性的三种面向建立在当今国际上最有代表性的三种面向对象方法对象方法B
19、ooch(Grady Booch : The Booch(Grady Booch : The Booch method targets object-oriented Booch method targets object-oriented analysis and design with emphasis on analysis and design with emphasis on detailed design)detailed design)方法,方法,OMT(Object OMT(Object Modeling Technique)Modeling Technique)方法,方法,O
20、OSEOOSE方法的根方法的根底之上。底之上。UMLUML是一种建模言语而不是一种方法,是一种建模言语而不是一种方法,UMLUML本本身是独立于过程的。身是独立于过程的。32规范建模言范建模言语UML UML为人们提供了从不同的角度去察看和展现系统的各种特征的一种规范表达方式。在UML中,从任何一个角度对系统所作的笼统都能够需求用几种模型图来描画,而这些来自不同角度的模型图最终组成了系统的完好模型。33规范建模言范建模言语UML 普通而言,我们可以从以下几种常用的视角普通而言,我们可以从以下几种常用的视角来描画一个系统:来描画一个系统:系统的运用实例:从系统外部的操作者的角度描画系统的运用实例
21、:从系统外部的操作者的角度描画系统的功能。系统的功能。系统的逻辑构造:描画系统内部的静态构造和动态系统的逻辑构造:描画系统内部的静态构造和动态行为,即从内部描画如何设计实现系统功能。行为,即从内部描画如何设计实现系统功能。系统的构成:描画系统由哪些程序构件所组成。系统的构成:描画系统由哪些程序构件所组成。系统的并发性:描画系统的并发性,强调并发系统系统的并发性:描画系统的并发性,强调并发系统中存在的各种通讯和同步问题。中存在的各种通讯和同步问题。系统的配置:描画系统的软件和各种硬件设备之间系统的配置:描画系统的软件和各种硬件设备之间的配置关系。的配置关系。34规范建模言范建模言语UMLUMLU
22、ML模型图模型图5 5类,类,1010种:种:用例图用例图静态图类图,对象图,包图静态图类图,对象图,包图行为图形状图,活动图行为图形状图,活动图交互图顺序图,协作图交互图顺序图,协作图实现图构件图,配置图实现图构件图,配置图3536规范建模言范建模言语UML 用例用例图37规范建模言范建模言语UML 用例用例图38规范建模言范建模言语UML 类图单一承一承继CarPowered VehicleTruckTruckCarPowered Vehicle39规范建模言范建模言语UML 类图多重承多重承继AircraftPowered VehicleCarAirplaneTruck40规范建模言范建
23、模言语UML 对象象图作者作者计算机计算机名字:名字:String内存:内存:Ineger名字:名字:String年龄:年龄:Integer0.1Uses1.*小王:作者小王:作者小王的任务小王的任务PC:计算机计算机名字名字 = “王小影王小影年年龄 = 32小王的任务小王的任务PC:计算机计算机名字名字 = “Compaq X内存内存 = 32名字名字 = “Dell486内存内存 = 64类图类图对象图对象图41规范建模言范建模言语UML 包包图订单获取订单获取界面界面订单获取订单获取运用运用AWT邮件发送邮件发送清单界面清单界面邮件发送邮件发送清单运用清单运用订单订单顾客顾客42规范建
24、模言范建模言语UML 形状形状图下降形状下降形状在第一层在第一层上升形状上升形状向第一层下降向第一层下降空闲形状空闲形状上升上升到达到达到达到达上升上升超时超时下降下降到达第一层到达第一层43规范建模言范建模言语UML 形状形状图Custom order Statustentativecanceledconfirmedentry/self.cancelcustSubmitsOrdercustConfirmsOrdercustCancelsOrdercustCancelsOrderAfter(30days)Cust.notifyCanceled(self)self.fulfillmentStat
25、us not=shipped44规范建模言范建模言语UML 顺序序图45规范建模言范建模言语UML 协作作图46规范建模言范建模言语UML 活活动图47规范建模言范建模言语UML 构件构件图 Graphic.dll:图形库图形库 Comhnd.cpp: 命令处置器命令处置器 Main.cpp:主类主类 Whnd.obj: 窗口处置器窗口处置器 Comhnd.obj: 命令处置器命令处置器 Main.obj:主类主类 client.exe: 客户程序客户程序 Whnd.cpp: 窗口处置器窗口处置器48规范建模言范建模言语UML 配置配置图客户客户A:个人电脑个人电脑PC客户客户B:个人电脑个人
26、电脑PC数据库效力器:数据库效力器:VAX效力器:效力器:02TCP/IP协议协议TCP/IP协议协议DecNet协议协议49规范建模言范建模言语UML 配置配置图OO方法的开发过程方法的开发过程 OO方方法法改改良良了了在在生生存存期期各各个个阶段段间的的界界面面,由由于于生生存存期期各各个个阶段段开开发出出来来的的“部部件件都都是是类,在在面面向向对象象生生存存期期的的各各个个阶段段对各各个个类的的信信息息进展展细化化,类成成为分析、分析、设计和和实现的根本的根本单元。元。面向对象分析与模型化面向对象分析与模型化面向对象分析面向对象分析(OOA) 问题定义阶段,得到对问题论域的明问题定义阶
27、段,得到对问题论域的明晰、准确的定义。晰、准确的定义。 论域分析论域分析: 建立概括的系统实现环境建立概括的系统实现环境 运用分析运用分析: 根据特定运用的需求进展论根据特定运用的需求进展论域分析域分析OOA的根本过程的根本过程: 抽取整理用户需求抽取整理用户需求, 建立问建立问题域精题域精确模型确模型. 三个子模型与五个层次三个子模型与五个层次三个模型三个模型 对象模型象模型: : 描画静描画静态构构造造, , 定定义做事情的做事情的实体体 功能模型功能模型: : 描画描画处置置( (数数据据变换), ), 指明系指明系统应“做做什么什么 动态模型模型: : 描画交互描画交互过程程, , 规定什么定什么时候做候做 五个层次五个层次 主题层主题层 类类-&-&-对象层对象层: : 构造层构造层 属性层属性层 效力层效力层 总结:面向对象分析大体上按总结:面向对象分析大体上按照以下顺序进展:寻觅类照以下顺序进展:寻觅类-&-&-对象对象, ,识别构造,识别主题,识别构造,识别主题,定义属性,建立动态模型,建定义属性,建立动态模型,建立功能模型,定义效力。立功能模型,定义效力。 55