第2章面向对象方法学导论

上传人:大米 文档编号:567949809 上传时间:2024-07-22 格式:PPT 页数:64 大小:959.50KB
返回 下载 相关 举报
第2章面向对象方法学导论_第1页
第1页 / 共64页
第2章面向对象方法学导论_第2页
第2页 / 共64页
第2章面向对象方法学导论_第3页
第3页 / 共64页
第2章面向对象方法学导论_第4页
第4页 / 共64页
第2章面向对象方法学导论_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《第2章面向对象方法学导论》由会员分享,可在线阅读,更多相关《第2章面向对象方法学导论(64页珍藏版)》请在金锄头文库上搜索。

1、府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论第2章 面向对象方法学引论嗓崇楞佯碾看扩躁滓榴部膘哥努辐拘利铸积漾记杠挞蝴掠猜设镁坠呸朵首第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论本章概要 传统的软件工程方法学曾经给软件产业带来巨大进步,部分传统的软件工程方法学曾经给软件产业带来巨大进步,部分地缓解了软件危机,使用这种方法学开发的许多中、小规模软件地缓解了软件危机,使用这种方法学开发的许多中、小规模软件项目都获得了

2、成功。但是,人们也注意到当把这种方法学应用于项目都获得了成功。但是,人们也注意到当把这种方法学应用于大型软件产品的开发时,似乎很少取得成功。大型软件产品的开发时,似乎很少取得成功。 在在2020世纪世纪6060年代后期出现的面向对象编程语言年代后期出现的面向对象编程语言Simula-67Simula-67中中首次引入了类和对象的概念,自首次引入了类和对象的概念,自2020世纪世纪8080年代中期起,人们开始年代中期起,人们开始注重面向对象分析和设计的研究,逐步形成了面向对象方法学。注重面向对象分析和设计的研究,逐步形成了面向对象方法学。到了到了2020世纪世纪9090年代,面向对象方法学已经成

3、为人们在开发软件时年代,面向对象方法学已经成为人们在开发软件时首选的范型。面向对象技术已成为当前最好的软件开发技术。首选的范型。面向对象技术已成为当前最好的软件开发技术。馏兴爹摸掏戚雌闯弥瘦尧虞螺注脸县诬革胳蜒钵石葛焚仿顿并倘庄滋痔菩第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论2.1 面向对象方法学概述 2.1.1 2.1.1 面向对象方法学导论面向对象方法学导论 面向过程程序设计:面向过程程序设计: 根据计算机的要求,围绕算法进行程序设计。根据计算机的要求,围绕算法进行程序设计

4、。 开发软件的方法与过程不同于人类开发软件的方法与过程不同于人类认识世界解决问题时习惯采用的方法与过程,因此使得描述问题的问题空间与实现解认识世界解决问题时习惯采用的方法与过程,因此使得描述问题的问题空间与实现解法的解空间在结构上明显不同。法的解空间在结构上明显不同。 驱坏淮淑左陶价饥妥际积驻束须叠萌人绞瑞孜碳轻网疙言孙壬促追屏莉三第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论人类习惯的解决问题的方法 让我们观察一个日常生活中常见的事例:让我们观察一个日常生活中常见的事例: 一位厨

5、师的头发长了需要理发,他会走进理发馆,告诉理一位厨师的头发长了需要理发,他会走进理发馆,告诉理发师要理什么发式。也就是说,为了解决头发过长的问题,厨师发师要理什么发式。也就是说,为了解决头发过长的问题,厨师只需向理发师提出要求,告诉他只需向理发师提出要求,告诉他“ “做什么做什么” ”(即,理什么发式),(即,理什么发式),并不需要告诉理发师并不需要告诉理发师“ “怎样做怎样做” ”,理发师自己知道第一步做什么,理发师自己知道第一步做什么,第二步做什么。类似地,理发师肚子饿了,只需走进餐馆点好自第二步做什么。类似地,理发师肚子饿了,只需走进餐馆点好自己要吃的饭菜,厨师自己知道该怎样做,并不需要

6、顾客告诉他做己要吃的饭菜,厨师自己知道该怎样做,并不需要顾客告诉他做菜的具体步骤,事实上,顾客无需知道做菜的具体步骤。菜的具体步骤,事实上,顾客无需知道做菜的具体步骤。 两烛或吏软廷拷绘听肇嫁媳藉谅卉答授顾至狞惦鬼霜糕诸扇裕孰年闹昆屈第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论 面向对象程序设计方法模拟人类习惯的解题方法,用对象分解取代功能分解,也面向对象程序设计方法模拟人类习惯的解题方法,用对象分解取代功能分解,也就是把程序分解成许多对象,不同对象之间通过发消息向对方提出服务要

7、求,接受消就是把程序分解成许多对象,不同对象之间通过发消息向对方提出服务要求,接受消息的对象主动完成指定功能,程序中的所有对象分工协作,共同完成整个程序的功能。息的对象主动完成指定功能,程序中的所有对象分工协作,共同完成整个程序的功能。面向对象程序设计方法模拟人类习惯面向对象程序设计方法模拟人类习惯挑疥拆文曼烈例酶溺刻搬蛰账粘漾屁饭挫稳涩哺柱黔狙缓编虱注肘奄又叛第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论2.1.2 面向对象方法概述 面向对象方法学的出发点和基本原则,是尽可能模拟

8、人类习惯的思维方式,使面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称求解域)在结构上尽述问题的问题空间(也称为问题域)与实现解法的解空间(也称求解域)在结构上尽可能一致。可能一致。烂桨裔锚椿犁妄察成哉泽力华薛钎赶躺诺洗少销颇潭糊嗓耐数扔栈娱疑摩第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法

9、学导论第2章面向对象方法学导论面向对象方法具有下述面向对象方法具有下述4 4个要点:个要点: 认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。较简单的对象以某种方式组合而成。 把所有对象都划分成各种对象类(简称为类,把所有对象都划分成各种对象类(简称为类,ClassClass),每个对象类都定义了一),每个对象类都定义了一组数据和一组方法。组数据和一组方法。 按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成按照子类(或称为派生类)与父类(或称为基类)的关

10、系,把若干个对象类组成一个层次结构的系统(也称为类等级)。一个层次结构的系统(也称为类等级)。 对象彼此之间仅能通过传递消息互相联系。对象彼此之间仅能通过传递消息互相联系。谗本吗棒辖销讥渐佯烙喷唁玄谎简土裂检符烹臂寺愤刽诊铡褒木晨锰菩器第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论2.1.3 2.1.3 面向对象方法的主要优点面向对象方法的主要优点 与人类习惯的思维方法比较一致与人类习惯的思维方法比较一致 面向对象方法学的基本原则是按照人们习惯的思维方式建面向对象方法学的基本原则是

11、按照人们习惯的思维方式建成立问题域的模型,开发出尽可能直观、自然地表现求解方法的成立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统。面向对象的软件系统中广泛使用的对象,是对客观世软件系统。面向对象的软件系统中广泛使用的对象,是对客观世界中实体的抽象。界中实体的抽象。 稳定性好稳定性好 面向对象方法基于构造问题领域的对象模型,以对象为中面向对象方法基于构造问题领域的对象模型,以对象为中心构造软件系统。它的基本作法是用对象模拟问题领域中的实体,心构造软件系统。它的基本作法是用对象模拟问题领域中的实体,以对象间的联系刻画实体间的联系。因此,以对象为中心构造的以对象间的联系刻画实体间的联

12、系。因此,以对象为中心构造的软件系统也是比较稳定的。软件系统也是比较稳定的。 剖烹鸵因架啮餐寞闻莆枣剿住万篓敢查需瞪度吱四纶官辛吮诈组川袖小糠第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论 可重用性好可重用性好 面向对象的软件技术在利用可重用的软件成分构造新的软件面向对象的软件技术在利用可重用的软件成分构造新的软件系统时,有很大的灵活性。其中,有两种方法可以重复使用一个系统时,有很大的灵活性。其中,有两种方法可以重复使用一个对象类:一种方法是创建该类的实例,从而直接使用它;另一种对

13、象类:一种方法是创建该类的实例,从而直接使用它;另一种方法是从它派生出一个满足当前需要的新类。方法是从它派生出一个满足当前需要的新类。 较易开发大型软件产品较易开发大型软件产品 可维护性好可维护性好 面向对象还有如下突出优点:面向对象还有如下突出优点: 面向对象软件稳定性比较好;面向对象软件稳定性比较好; 面向对象的软件比较容易修改;面向对象的软件比较容易修改; 面向对象的软件比较容易理解;面向对象的软件比较容易理解; 易于测试和调试。易于测试和调试。他酉饭邹彤庆惧邻屡雪北沛噪靴欣瀑漠路肘丽就姻刘补棠弊韧靡怜魄砾仪第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵

14、健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论2.1.4 2.1.4 喷泉模型喷泉模型 喷泉模型体现了面向对象方法所固有的迭代和无间隙的特征。喷泉模型体现了面向对象方法所固有的迭代和无间隙的特征。 迭代是软件开发过程中普遍存在的一种内在属性。即,软件开发活动需多次重复,迭代是软件开发过程中普遍存在的一种内在属性。即,软件开发活动需多次重复,每次重复都从分析开始,依次进行设计、实现,逐渐细化,演化出最终系统。每次重复都从分析开始,依次进行设计、实现,逐渐细化,演化出最终系统。庞敦孜身罚息措扣肝执馒鼻琴拆练悦尸氦妆蹲席闽灭黑孽萝滋劫溺酌码窥第2章面向对象方法学导论

15、第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论图图2.12.1喷泉模型喷泉模型俐壹髓袄巩酿柄酌维铂骏躯锡搔缮赛怂滞旺栅矫针钳委橙轴蘸颐栗尼贷遂第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论2.2 2.2 面向对象的概念面向对象的概念 2.2.1 2.2.1 对象对象 在应用领域中有意义的,与所要解决在应用领域中有意义的,与所要解决 的问题有关系的任何事物都可以作为对象的问题有关系的任何事物都可

16、以作为对象(ObjectObject),它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明),它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。例如,一名职工、一家公司、一个窗口、一座图书馆、一本图书、确边界和意义的东西。例如,一名职工、一家公司、一个窗口、一座图书馆、一本图书、贷款、借款等等,都可以作为一个对象贷款、借款等等,都可以作为一个对象 。 总之,对象是对问题域中某个实体的抽象,设立某个对象就反映了软件系统具有保总之,对象是对问题域中某个实体的抽象,设立某个对象就反映了软件系统具有保存有关它的信息并且与它进行交互的能力。存有关它的信

17、息并且与它进行交互的能力。 菏器简骇静毫足撮漠利同碰烬翱车紧畦沮路阐贮晒蕊呀鄙踞尊协虞评淫桩第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论 面向对象方法学中的对象:面向对象方法学中的对象: 是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体。的统一体。对象可以作的操作表示它的动态行为,通常称为服务或方法。对象可以作的操作表示它的动态行为,通常称为服务或方法。 衙洗啃缓菜卒没佳碘恨肄葬侄

18、填叔常滋婪曹杂旦纫应邵渐赴世怀漏喊贤橇第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论对象的形象表示(举例)对象的形象表示(举例) 一个对象很像一台录音机。当在软件中使用一个对象的时候,只能通过对象与外一个对象很像一台录音机。当在软件中使用一个对象的时候,只能通过对象与外界的界面来操作它。对象与外界的界面也就是该对象向公众开放的操作,例如,界的界面来操作它。对象与外界的界面也就是该对象向公众开放的操作,例如,C+ C+ 语言中对象的公有的(语言中对象的公有的(PublicPublic

19、)成员函数。一个对象好象是一个黑盒子,表示它内部状)成员函数。一个对象好象是一个黑盒子,表示它内部状态的数据和实现各个操作的代码及局部数据,都被封装在这个黑盒子内部,在外面是看态的数据和实现各个操作的代码及局部数据,都被封装在这个黑盒子内部,在外面是看不见的,更不能从外面去访问或修改这些数据或代码。不见的,更不能从外面去访问或修改这些数据或代码。 禁巍姚孪湘拈蹦萧签蜜镍据返消剧娃霉辐卉位倾岿醒定济柒作亚痊休幌丹第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论对象的形象表示:对象的形象

20、表示:图图2.2 2.2 对象的形象表示对象的形象表示慈君怕嗓寄辆连澡剿揭位颈线欧逢叠我笑煤朝喝稼并杜讯薄榴奉脖夫信言第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论对象的定义对象的定义 人们从不同角度给出对象的不同定义:人们从不同角度给出对象的不同定义: 1 1、定义、定义1 1:对象是具有相同状态的一组操作的集合。:对象是具有相同状态的一组操作的集合。 2 2、定义、定义2 2:对象是对属性值和操作的封装。:对象是对属性值和操作的封装。 3 3、定义、定义3 3:对象:对象 =

21、=IDID,MSMS,DSDS,MIMI 其中,其中,IDID是对象的标识或名字,是对象的标识或名字,MSMS是对象中的操作集合,是对象中的操作集合,DSDS是对象的数据结构,是对象的数据结构,MIMI是对象受理的消息名集合(即对外接口)是对象受理的消息名集合(即对外接口),注意:这个定义是一个形式化的定义。,注意:这个定义是一个形式化的定义。醉魂格塞酱表迫厌层省伐搜凌集勋癌抢怔姑宜钨娟闸页滑侵熏寅烽绞潘刀第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论 总之,对象是封装了数据结构及

22、可以施加在这些数据结构上的操作的封装体,这总之,对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体,这个封装体有可以唯一地标识它的名字,而且向外界提供一组服务(即公有的操作)。对个封装体有可以唯一地标识它的名字,而且向外界提供一组服务(即公有的操作)。对象中的数据表示对象的状态,一个对象的状态只能由该对象本身的操作来改变。象中的数据表示对象的状态,一个对象的状态只能由该对象本身的操作来改变。跟沟麦骡训棺缩侨袁毅派固摸翁笆跃颅泣宪蜕属哇雍杭辐湃巧碎惕屯逮势第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学

23、导论第2章面向对象方法学导论对象的特点对象的特点 以数据为中心,操作是为数据服务的。以数据为中心,操作是为数据服务的。 对象是主动的,为了完成某个操作,不能从外部直接加工它对象是主动的,为了完成某个操作,不能从外部直接加工它的私有数据,而是必须通过它的公有接口向对象发消息,请求它的私有数据,而是必须通过它的公有接口向对象发消息,请求它执行它的某个操作,处理它的私有数据。(举例:厨师与理发匠)执行它的某个操作,处理它的私有数据。(举例:厨师与理发匠)。 实现了数据封装。对象好像是一只黑盒子,它的私的数据完实现了数据封装。对象好像是一只黑盒子,它的私的数据完全被封装在盒子内部,对外是隐藏的、不可见

24、的,对私有数据的全被封装在盒子内部,对外是隐藏的、不可见的,对私有数据的访问或处理只能通过公有的操作进行。抽象数据类型的概念,无访问或处理只能通过公有的操作进行。抽象数据类型的概念,无须知道数据的具体结构以及实现操作的算法。须知道数据的具体结构以及实现操作的算法。鉴丛桔珊可陛僳堑屯哗晕踏领海怨歼咐践朵终几悲喀波缎蛙特庙辅匆举经第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论 本质上具有并行性。不同对象各自独立地处理自身的数据,彼此通过发消息本质上具有并行性。不同对象各自独立地处理自身

25、的数据,彼此通过发消息传递信息完成通信。因此,对于不同的对象来说,本质上具有并行工作的属性。传递信息完成通信。因此,对于不同的对象来说,本质上具有并行工作的属性。 模块独立性好。对象是面向对象的软件的基本模块。模块独立性好。对象是面向对象的软件的基本模块。茨谅驾病匿限轮赡筒移拟舟倚艇仁搞吁雹射我伶逮酗据伶习忘热漓撵浴括第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论2.2.2 2.2.2 其他概念其他概念 类类(class)(class) “ “类类”就是对具有相同数据和相同操作的一

26、组相似对象的定就是对具有相同数据和相同操作的一组相似对象的定义,也就是说,类是对具有相同属性和行为的一个或多个对象的义,也就是说,类是对具有相同属性和行为的一个或多个对象的描述。描述。 例如:张三、李四、王五等,虽说每个人职业、性格、爱好、例如:张三、李四、王五等,虽说每个人职业、性格、爱好、特长等等各有不同。但是,他们的基本特征是相似的,都是黄皮特长等等各有不同。但是,他们的基本特征是相似的,都是黄皮肤、黑头发、黑眼睛,于是人们把他们统称为肤、黑头发、黑眼睛,于是人们把他们统称为“ “中国人中国人” ”。抹握嫩巍揽株躯校旦沈嗓嘱慧穷耕仁剑洛察错诅稳帮烟姿暑居廖凋乎傍纤第2章面向对象方法学导论

27、第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论 实例(实例(instanceinstance) “ “实例实例” ”是由某个特定的类所描述的一个具体的对象。是由某个特定的类所描述的一个具体的对象。 “ “对象对象” ”这个术语,既可以指一个具体的对象,也可以泛指一般这个术语,既可以指一个具体的对象,也可以泛指一般的对象,而的对象,而“ “实例实例” ”这个术语,必然是指一个具体的对象。这个术语,必然是指一个具体的对象。 C+ C+中,要定义一个对象或实例,必须先建立一个这类对象的中,要定义一个对象或实例,

28、必须先建立一个这类对象的类。类。 萄猎锚掷猪玉灰邮袭彦茧搽渠遣哦膝准绦考拄目艺韶纲钻大厂调罗窒拈墟第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论 消息(消息(messagemessage):): 要求某个对象执行其中某个操作的规格的说明,一个消息由下要求某个对象执行其中某个操作的规格的说明,一个消息由下述三部分组成:述三部分组成: 接收消息的对象;接收消息的对象; 消息选择符(也称为消息名);消息选择符(也称为消息名); 零个或多个变元。零个或多个变元。 例如例如 : MyCirc

29、le.Show(GREEN) MyCircle.Show(GREEN) ; 其中:其中: MyCircle MyCircle是是CircleCircle类的对象,也是类的对象,也是 Circle Circle类的一个实例。类的一个实例。 Show Show是消息选择符(即消息名);是消息选择符(即消息名); GREEN GREEN是消息的变元。是消息的变元。 帮尹信参耳庚招叠稀搞傣主峨插酵挎默彭投腺诬汰寻佐柠滔譬色峪校娇垛第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论 方法(方法(

30、methodmethod) 方法,就是对象所能执行的操作,也就是类中所定义的服方法,就是对象所能执行的操作,也就是类中所定义的服务。务。 在在C+ C+ 语言中把方法称为成员函数。通常,一个函数对应语言中把方法称为成员函数。通常,一个函数对应一个操作,实现一个功能。一个操作,实现一个功能。例如:为了例如:为了MYCircleMYCircle这个对象能够显示一个圆,在这个对象能够显示一个圆,在CircleCircle类类中必须定义成员函数中必须定义成员函数Show(int color)Show(int color)。仆马掷赫岗胀奉楚汐改昔渡蒙针黎核垄泼滩直水畸弹驭翼苟酬蔗迹皆劳堤第2章面向对象方

31、法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论 属性(属性(attributeattribute) 属性,就是类中所定义的数据,它是对客观世界实体所具属性,就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。有的性质的抽象。 例如:例如:CircleCircle类中定义代表圆心坐标、半径、颜色等属性。类中定义代表圆心坐标、半径、颜色等属性。 在在C+ C+ 语言中把属性称为数据成员。语言中把属性称为数据成员。 轿氨恒悔单僳却豢尿遮扭锯丑册胰蔚绊冗跺挟内肠尘畅汀庇庞战稻衬哨武第2章面向对象方

32、法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论 封装性(封装性(encapsulationencapsulation) 从字面上理解,所谓封装就是把某个事物包起来,使外界不从字面上理解,所谓封装就是把某个事物包起来,使外界不知道该事物的具体内容把数据和实现操作的代码集中起来放在对知道该事物的具体内容把数据和实现操作的代码集中起来放在对象内部。使用一个对象的时候,只需知道它向外界提供的接口形象内部。使用一个对象的时候,只需知道它向外界提供的接口形式而无须知道它的数据结构细节和实现操作的算法式而无须知

33、道它的数据结构细节和实现操作的算法 。 实现封装的条件实现封装的条件 : 有一个清楚的边界。有一个清楚的边界。 有确定的接口(这些接口就是对象可以接受的消息,用户有确定的接口(这些接口就是对象可以接受的消息,用户只能通过向对象发送消息来使用它)。只能通过向对象发送消息来使用它)。 受保护的内部实现。受保护的内部实现。禾入芹蛾搽橱纸顷消振慷颂泳酿缮孽夷宪思墨迅苗立斤叹青术激席曰纯弟第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论 继承(继承(inheritanceinheritance

34、) 继承是指能够直接获得已有的性质和特征,而不必重复定义继承是指能够直接获得已有的性质和特征,而不必重复定义它们。子类自动地共享基类中定义的数据和方法的机制。它们。子类自动地共享基类中定义的数据和方法的机制。 (举例:(举例:父与子)父与子) 继承具有传递性,如果类继承具有传递性,如果类C C继承类继承类B B,类,类B B继承类继承类A A,则类,则类C C继承类继承类A A。一个类除了具有该类所描述的性质外,还具有类等级。一个类除了具有该类所描述的性质外,还具有类等级中该类上层全部基类描述的一切性质。中该类上层全部基类描述的一切性质。徊沧柠承骂杯硒膀轴蠢翌果叉延康靶答鹿骤艰抚葛也获丹既胳咸

35、知抨丛锤第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论继承机制的原理继承机制的原理图图2.42.4 实现继承机制的原理实现继承机制的原理幸蚌妈源久搓扰瞅慢览再痪猖捡褂舌蛀绷赌棵氮拆塔抑斑江店降光淹楼诸第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论 多态性多态性(polymorphism )(polymorphism ) 多态性是指子类对象可以像父类对象那样使用。同样的消

36、息多态性是指子类对象可以像父类对象那样使用。同样的消息既可以发送给父类对象也可以发送给子类对象。既可以发送给父类对象也可以发送给子类对象。 在类等级的不同层次中,相同的消息,被不同的类(属同一在类等级的不同层次中,相同的消息,被不同的类(属同一簇)的对象接收,产生了不同的行为。簇)的对象接收,产生了不同的行为。 在在C+ C+ 语言中,多态性是通过虚函数来实现的。虚函数机制语言中,多态性是通过虚函数来实现的。虚函数机制使得程序员能在一个类等级中使用相同函数的多个不同版本,在使得程序员能在一个类等级中使用相同函数的多个不同版本,在运行时刻才根据接收消息的对象所属于的类,决定到底执行哪个运行时刻才

37、根据接收消息的对象所属于的类,决定到底执行哪个特定的版本,这称为动态联编,也叫滞后联编。特定的版本,这称为动态联编,也叫滞后联编。 躺演剧帅钎疙潘颧垫抑感虐身赐坯渊刀垂兜父赘农茄赎宠戒菲却舆坝傻泥第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论 重载(重载(overloadingoverloading)( (有两种重载有两种重载) ) 函数重载是指在同一作用域内的若干个参数特征不同的函函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;数可以使用相同的函数名字

38、; 运算符重载是指同一个运算符可以施加于不同类型的操作运算符重载是指同一个运算符可以施加于不同类型的操作数上面。数上面。 在在C+ C+ 语言中函数重载是通过静态联编实现的,也就是在编语言中函数重载是通过静态联编实现的,也就是在编译时根据函数变元的个数和类型译时根据函数变元的个数和类型 ,决定到底使用函数的哪个实现,决定到底使用函数的哪个实现代码;对于重载的运算符,同样是在编译时根据被操作数的类型,代码;对于重载的运算符,同样是在编译时根据被操作数的类型,决定使用该算符的哪种语义。决定使用该算符的哪种语义。 如如: cout“2”; : cout“2”; 表示向屏幕输出字符串表示向屏幕输出字符

39、串2 2 x2; x2; 表示将表示将x x中的二进制左移中的二进制左移2 2位位惮丝铰憎刨蛆炙乾道筷遣渔撒拘膏辱婉炙蚜龄胰坟朽故掺拷焰殆郭躺啄甜第2章面向对象方法学导论第2章面向对象方法学导论熟悉并使用类熟悉并使用类C+标准库提供了标准库提供了string类,类, string类的属性是一类的属性是一个字符串个字符串str,同名函数,同名函数string是用来初始化符串,是用来初始化符串,另外另外3个成员函数用来对个成员函数用来对属性属性str进行操作。进行操作。当定义了一个对象后,这当定义了一个对象后,这 个个对象可以通过这些成员函对象可以通过这些成员函数展现自身的特性。数展现自身的特性。

40、stringstrstring()find ()size()substr()挠哟茬折逆讹冈窘赎岁刮徽殷收淖模鸿滁胚讶绿湛丢补炯琢贼沥箍讲衬带第2章面向对象方法学导论第2章面向对象方法学导论使用使用stringstring类的例子类的例子#include #include using namespace std;void main( )string str1(We are here!);string str2;coutstr10str111,str1endl;coutstr2;/输入输入 一个单词给对象一个单词给对象str2coutlength of str2 isstr2.size()endl

41、;string newstr=str2.substr(3,1);/从从 str2的第的第3位开始截取位开始截取1个字符个字符coutnewstr=newstrendl;int i=str1.find(“are”,0);/从字符串从字符串str1的位置的位置0开始检索开始检索arecouti=iendl; 注意:注意:注意:注意:C+C+规定符串的计数是从零开始的规定符串的计数是从零开始的规定符串的计数是从零开始的规定符串的计数是从零开始的斩酪衣贡堑素褪相仆虹晦邮圣卓那见江汤裹镭匠滁哥劫可冶祸盎近翼爵什第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七

42、暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论2.3 2.3 面向对象建模面向对象建模 所谓模型,由一组图示符号和组织这些符号的规则组成,利所谓模型,由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。模型是一种思考工用它们来定义和描述问题域中的术语和概念。模型是一种思考工具,利用这种工具可以把知识规范地表示出来。具,利用这种工具可以把知识规范地表示出来。 为了开发复杂的软件系统,系统分析员应该抽象出目标系统为了开发复杂的软件系统,系统分析员应该抽象出目标系统的特性,使用精确的表示方法构造系统的模型,并在设计过程中的特性,使用精确的表示方法构造

43、系统的模型,并在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型。逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型。 纂斧卯混余寨缀狰树量痪铡微铬散烫塘赛卢狰蓉蜡轩怔瓣围峙七猿疚张厄第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论 用面向对象方法开发软件,通常需要建立三种形式的模型,用面向对象方法开发软件,通常需要建立三种形式的模型,它们分别是:它们分别是: 描述系统数据结构的对象模型描述系统数据结构的对象模型( (基本、核心基本、核心) ) 描述系统控制结

44、构的动态模型描述系统控制结构的动态模型 描述系统功能的功能模型描述系统功能的功能模型 一个典型的软件系统组合了上述三方面内容:它使用数据结一个典型的软件系统组合了上述三方面内容:它使用数据结构(对象模型),执行操作(动态模型),并且完成数据值的变构(对象模型),执行操作(动态模型),并且完成数据值的变化(功能模型)。化(功能模型)。 痔罗他略中蹄躁讽补玉恨目销埠瓮状涝防眉害降乘蜀苇霸类木冉汁义圆闲第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论2.4 2.4 对象模型对象模型 对象模

45、型是上述三种模型中最重要、最基本、最核心的模型,对象模型是上述三种模型中最重要、最基本、最核心的模型,是表示静态的、结构化的系统的是表示静态的、结构化的系统的“ “数据数据” ”性质。性质。 它是对模拟客观世界实体的对象以及对象彼此间的关系的映它是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。面向对象方法强调围绕对象而不是射,描述了系统的静态结构。面向对象方法强调围绕对象而不是围绕功能来构造系统。对象模型为建立动态模型和功能模型,提围绕功能来构造系统。对象模型为建立动态模型和功能模型,提供了实质性的框架。供了实质性的框架。南宦邱奸钻膜痞束辐旱部太挣棵劣懂霖瞻瞧女馆肃

46、现王馒劈哉敛习玲铭剿第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论2.4.1 2.4.1 类图的基本符号类图的基本符号 定义类定义类 UML UML中类的图形符号为长方形,用两条横线把长方形分成中类的图形符号为长方形,用两条横线把长方形分成上、中、下上、中、下3 3个区域(下面两个区域可省略),个区域(下面两个区域可省略),3 3个区域分别放类个区域分别放类的名字、属性和服务。的名字、属性和服务。誓塞次娟凯着嗓铰段酉妆贵佃壳烛屎挤扒珠淆氰顷皮沛学毗诧挛典崖躇醒第2章面向对象方法学导

47、论第2章面向对象方法学导论2.4.1 2.4.1 类图的基本符号类图的基本符号类命名时应遵守以下几条准则:类命名时应遵守以下几条准则:使用标准术语。使用标准术语。使用具有确切含义的名词。使用具有确切含义的名词。 必要时用名词短语作名字。必要时用名词短语作名字。 总之,名字应该是富于描述性的、简洁的而且无二义总之,名字应该是富于描述性的、简洁的而且无二义性的。性的。 洛雌摈磕迢远撬吉篙契竭竿弦焊杖虞支拣债眺睡话远逾厘邓决冯能刃虱粱第2章面向对象方法学导论第2章面向对象方法学导论2.4.1 2.4.1 类图的基本符号类图的基本符号定义属性定义属性UMLUML描述属性的语法格式如下:描述属性的语法格

48、式如下:可见性可见性 属性名属性名: :类型名类型名 = = 初值初值 性质串性质串 属性的可见性(即可访问性)通常有下述属性的可见性(即可访问性)通常有下述3 3种:种: 公有的(公有的(publicpublic)用加号)用加号(+)(+)表示表示私有的(私有的(privateprivate)用减号)用减号( () )表示表示和保护的(和保护的(protectedprotected)用井号)用井号( () )表示表示如果未声明可见性,则表示该属性的可见性尚未定义。如果未声明可见性,则表示该属性的可见性尚未定义。例如:例如:“学生学生”类的属性类的属性“学号学号”,可以这样描述:,可以这样描述

49、:学号:学号:String=“020010” String=“020010” 昂灰堤定辙覆骏旁烧训皇护友冀拇赫獭缔置迄痞匿烃劳厂要坏自锥哨雕其第2章面向对象方法学导论第2章面向对象方法学导论2.4.1 2.4.1 类图的基本符号类图的基本符号定义服务定义服务服务也就是操作,服务也就是操作,UMLUML描述操作的语法格式如下:描述操作的语法格式如下: 可见性可见性 操作名操作名( (参数表参数表): ):返回值类型返回值类型 性质串性质串 操作可见性的定义方法与属性相同。操作可见性的定义方法与属性相同。参数表是用逗号分隔的形式参数的序列。参数表是用逗号分隔的形式参数的序列。描述一个参数的语法如下

50、:描述一个参数的语法如下: 参数名参数名: :类型名类型名= = 默认值默认值哭旅郁呛棒实哉锦答杆桨盒爸输旺秀渺鸡钮浅沦城脐噬枣募色慷葵纠刽钮第2章面向对象方法学导论第2章面向对象方法学导论2.4.2 2.4.2 表示关系的符号表示关系的符号 关联关联关联表示两个类的对象之间存在某种语义上的联系。关联表示两个类的对象之间存在某种语义上的联系。 普通关联普通关联普通关联是最常见的关联关系,只要在类与类之间存在连普通关联是最常见的关联关系,只要在类与类之间存在连接关系就可以用普通关联表示。普通关联的图示符号是连接两接关系就可以用普通关联表示。普通关联的图示符号是连接两个类之间的直线个类之间的直线

51、。图图2.62.6 普通关系示例普通关系示例躇太购睛孩足拆斩远玄裂材扩收朔重播稼苍奋舅佰弟队碍痢苍戎恿水褥荆第2章面向对象方法学导论第2章面向对象方法学导论2.4.2 2.4.2 表示关系的符号表示关系的符号 关联的角色关联的角色 例如:一个人与另一个人结婚,必然一个人扮演丈夫例如:一个人与另一个人结婚,必然一个人扮演丈夫的角色,另一个人扮演妻子的角色。的角色,另一个人扮演妻子的角色。 图图2.72.7 关联的角色关联的角色迸刷趴访辈三檬闺袁耪宣男羚豌靴爸楚歧寨扳枝尊哲成初刮喉俯颖顷峭狞第2章面向对象方法学导论第2章面向对象方法学导论2.4.2 2.4.2 表示关系的符号表示关系的符号 限定关

52、联限定关联 限定关联通常用在一对多或多对多的关联关系中,可限定关联通常用在一对多或多对多的关联关系中,可以把模型中的重数从一对多变成一对一,或从多对多简化以把模型中的重数从一对多变成一对一,或从多对多简化成多对一。成多对一。例如,某操作系统中一个目录下有许多文件,一个文件仅属于一例如,某操作系统中一个目录下有许多文件,一个文件仅属于一个目录,在一个目录内文件名确定了惟一一个文件。个目录,在一个目录内文件名确定了惟一一个文件。 图图2.82.8 一个受限的关联一个受限的关联顶有蚁谚答辱棕请式腮幸脊衔议贫次拧腕妥瀑蔡咳杆垂请醇抑盾蛙膛骚敷第2章面向对象方法学导论第2章面向对象方法学导论2.4.2

53、2.4.2 表示关系的符号表示关系的符号 关联类关联类为了说明关联的性质可能需要一些附加信息。可以引为了说明关联的性质可能需要一些附加信息。可以引入一个关联类来记录这些信息。入一个关联类来记录这些信息。 例如,图例如,图2.92.9是一个电梯系统的类模型,队列就是电梯控制器类与是一个电梯系统的类模型,队列就是电梯控制器类与电梯类的关联关系上的关联类。电梯类的关联关系上的关联类。 图图2.9 2.9 关联类示例关联类示例同更逾波廷勇遏笨口蛾错牲药氮也筑幌霜弓觉亭起穗抿瞧阿忧西梅挫汽冈第2章面向对象方法学导论第2章面向对象方法学导论2.4.2 2.4.2 表示关系的符号表示关系的符号聚集聚集聚集也

54、称为聚合,是关联的特例。聚集表示类与类之聚集也称为聚合,是关联的特例。聚集表示类与类之间的关系是整体与部分的关系。间的关系是整体与部分的关系。 共享聚集共享聚集如图如图2.102.10所示。一般聚集和共享聚集的图示符号,都所示。一般聚集和共享聚集的图示符号,都是在表示关联关系的直线末端紧挨着整体类的地方画一个是在表示关联关系的直线末端紧挨着整体类的地方画一个空心菱形。空心菱形。 图图2.10 2.10 共享聚集示例共享聚集示例濒侈跟撤购波宏沪群奶氟打顽取罢介小徐填受艰羡距抒枝方凌京系运涧羔第2章面向对象方法学导论第2章面向对象方法学导论2.4.2 2.4.2 表示关系的符号表示关系的符号 组合

55、聚集组合聚集 图图2 2. .11 11是窗口的组成,从图上可以看出组成关系用实心棱形是窗口的组成,从图上可以看出组成关系用实心棱形表示。表示。 图图2.11 2.11 组合聚集示例组合聚集示例栈汗姿倦润登段摩初阐荆溅摄跋源桓农失狼掏似苏塞越恬臼肮槛值群埋忧第2章面向对象方法学导论第2章面向对象方法学导论2.4.2 2.4.2 表示关系的符号表示关系的符号泛化泛化 UMLUML中的泛化关系就是通常所说的继承关系,中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的分类关系。它是通用元素和具体元素之间的分类关系。泛化可进一步划分成普通泛化和受限泛化。泛化可进一步划分成普通泛化和受限泛

56、化。 囚舀惺梳坟狐借拎箱膝佯够乡闯鲜梆幕皱筹霉丰荷拙浅晰面拆歧首姬教渔第2章面向对象方法学导论第2章面向对象方法学导论2.4.2 2.4.2 表示关系的符号表示关系的符号图图2.12 2.12 抽象类示例抽象类示例普通泛化侨楼香曲褂询庆皇恩里趾限潭残湃斟弦抑矣捆恳囊叭恶或郧抱暇深街骚另第2章面向对象方法学导论第2章面向对象方法学导论2.4.2 2.4.2 表示关系的符号表示关系的符号图图2.13 2.13 复杂类图示例复杂类图示例 全睛咒勤穆律胃杉驳高囊虽陀栅革澜瘁贼豹灾患逾攘婆钉娜诣绩凛记嫌泪第2章面向对象方法学导论第2章面向对象方法学导论2.4.2 2.4.2 表示关系的符号表示关系的符号

57、图图2.14 2.14 多重继承示例多重继承示例 受限泛化寨姬界裹驾看绳雌籽野健铝筐缕舷乡哟翁巴踩弦创开潦碰栏史进她宋火奉第2章面向对象方法学导论第2章面向对象方法学导论2.4.2 2.4.2 表示关系的符号表示关系的符号 依赖和细化依赖和细化 依赖关系依赖关系 依赖关系描述两个模型元素(类、用例等)之间的语依赖关系描述两个模型元素(类、用例等)之间的语义连接关系。义连接关系。图图2.15 2.15 友元依赖关系友元依赖关系臆缴馆垦盟快愿只溃殷惨齿绎违现爹交借巍隔碰蔚以笆叭补准瘟裴婆永亡第2章面向对象方法学导论第2章面向对象方法学导论2.4.2 2.4.2 表示关系的符号表示关系的符号 细化关

58、系细化关系 当对同一个事物在不同抽象层次上描述时,这些描述当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系。之间具有细化关系。 图图2.16 2.16 细化关系示例细化关系示例际论猿那悬桨悟暇锌懊尿栅毗俯令俺佛由称念赞立重轻怨钦济浪萌厨灼座第2章面向对象方法学导论第2章面向对象方法学导论2.5 2.5 动态模型动态模型 动态模型表示瞬时的、行为化的系统的动态模型表示瞬时的、行为化的系统的“控制控制”性质,它规定了对象模型中的对象的合性质,它规定了对象模型中的对象的合法变化序列。法变化序列。 之昨至骨谐埋励铲酪繁顾禹潦者假严仕诧冗淘卑潍哉闭景耐鬼托贡卵勒创第2章面向对象方法学导论第

59、2章面向对象方法学导论2.5.1 2.5.1 状态状态 状态是任何可以被观察到的系统行为模状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。式,一个状态代表系统的一种行为模式。 钧伏曳借熊胆岁贼滥籍陈厚淘巧烦堤苍往睛双谚寿蔬刑鹤矗裹储炭嚎术瀑第2章面向对象方法学导论第2章面向对象方法学导论2.5.2 2.5.2 事件事件 事件是在某个特定时刻发生的事情,它是事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。另一个状态的外界事件的抽象。 冕悲丙穆顺伎宿筏同顿倡辅冷攻下馒乏待赊兰茬渐孰

60、讥刀且望哪满屠吞评第2章面向对象方法学导论第2章面向对象方法学导论2.5.3 2.5.3 符号符号 在状态图中,初态用实心圆表示,终态用在状态图中,初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。一对同心圆(内圆为实心圆)表示。 活动表的语法格式如下:活动表的语法格式如下:事件名事件名( (参数表参数表)/ )/动作表达式动作表达式事件表达式的语法如下:事件表达式的语法如下:事件说明事件说明 守卫条件守卫条件/ /动作表达式动作表达式其中,事件说明的语法为:事件名其中,事件说明的语法为:事件名( (参数表参数表) )湍弟糯括腆帕习儡勘哉哮傅沛泥炸瀑二蓟舍镊研疡涟墙农照泞旗拂稠隋钝第2章

61、面向对象方法学导论第2章面向对象方法学导论2.5.3 2.5.3 符号符号图图2.172.17状态图中使用的主要符号状态图中使用的主要符号鉴峨噎走恕毯戳吓荡碉怠帛列村柔釜敬判阻燎炊佑患孙碘饰蔷戮尧玖惫除第2章面向对象方法学导论第2章面向对象方法学导论图图2.18 2.18 学生选毕设课题的状态图学生选毕设课题的状态图羡增谢苛五眺匆耶泻泅板膜投牲俩狂吊梧侩彬伎舔钦妨兜盆什枝大吨扇脏第2章面向对象方法学导论第2章面向对象方法学导论2.6 2.6 功能模型功能模型 功能模型表示变化的系统的功能模型表示变化的系统的“功能功能”性质,性质,它指明了系统应该它指明了系统应该“做什么做什么”,因此更直接地反

62、,因此更直接地反映了用户对目标系统的需求。映了用户对目标系统的需求。津隙尾危逛肉拜帘奔卸欺幅这葡韧贵昆腻嘻躯列批呛碧窿睦揉村孙户珊黎第2章面向对象方法学导论第2章面向对象方法学导论2.6.1 2.6.1 用例图用例图系统系统系统被看作一个提供用例的黑盒子,内部如何系统被看作一个提供用例的黑盒子,内部如何工作对于建立用例模型都不重要。工作对于建立用例模型都不重要。缅畸典括恬膝扯巨嫂糙蒸烘针冰市奖抽吗专戒撬如缨伤萝烙鸽汹掠崩侍来第2章面向对象方法学导论第2章面向对象方法学导论2.6.1 2.6.1 用例图用例图用例用例用例具有下述特征用例具有下述特征: : 用例代表某些用户可见的功能,实现一个具用

63、例代表某些用户可见的功能,实现一个具体的用户目标;体的用户目标;用例总是被行为者启动的,并向行为者提供用例总是被行为者启动的,并向行为者提供可识别的值;可识别的值;用例必须是完整的。用例必须是完整的。刨湛弦收温跋阂羊敦陇畴纸逐刻病杯鼻讣淳所醉像暇靳税定茁村奢绝党溺第2章面向对象方法学导论第2章面向对象方法学导论2.6.1 2.6.1 用例图用例图行为者行为者 行为者是指与系统行为者是指与系统交互的人或其他系交互的人或其他系统,它代表外部实统,它代表外部实体。使用用例并且体。使用用例并且与系统交互的任何与系统交互的任何人或物都是行为者。人或物都是行为者。图图2.19 2.19 自动售货机系统用例

64、图自动售货机系统用例图俭埋荚宛砸捕艾跑氖熙漾颠幌释甄虚兢捧椅森谰短减绦存菱临月碗琼雍园第2章面向对象方法学导论第2章面向对象方法学导论图图2.20 2.20 含扩展和使用关系的用例图含扩展和使用关系的用例图用例之间的关系用例之间的关系 扩展关系扩展关系使用关系使用关系袒尹擒危熊靡相脚委敬吉界挡锭灶巩馈亭扮酝制与蹬痞敛卞糟眼宅雅勉待第2章面向对象方法学导论第2章面向对象方法学导论2.6.2 2.6.2 用例建模用例建模寻找行为者寻找行为者寻找用例寻找用例注意注意: : 最后这两个问题并不意味着没有行为者也可最后这两个问题并不意味着没有行为者也可以有用例,只是在获取用例时还不知道行为者是以有用例,

65、只是在获取用例时还不知道行为者是谁。事实上,一个用例必须至少与一个行为者相谁。事实上,一个用例必须至少与一个行为者相关联。关联。 坷搓战荆刽棍刚孺醛蠕涎广冬歹佑追祸侩宏诞孝模馒滥锚闻称敷辞软诽碘第2章面向对象方法学导论第2章面向对象方法学导论2.7 2.7 三种模型之间的关系三种模型之间的关系 针对每个类建立的动态模型,描述了类实例的生命周期或针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。运行周期。状态转换驱使行为发生,这些行为在用例图中被映射成用状态转换驱使行为发生,这些行为在用例图中被映射成用例,它们同时与类图中的服务相对应。例,它们同时与类图中的服务相对应。功能模型中的处理

66、(或用例)对应于对象模型中的类所提功能模型中的处理(或用例)对应于对象模型中的类所提供的服务。通常,复杂的处理(或用例)对应于复杂对象提供的服务。通常,复杂的处理(或用例)对应于复杂对象提供的服务,简单的处理(或用例)对应于更基本的对象提供供的服务,简单的处理(或用例)对应于更基本的对象提供服务。有时一个处理(或用例)对应多个服务,也有一个服服务。有时一个处理(或用例)对应多个服务,也有一个服务时应多个处理(或用例)的时候。务时应多个处理(或用例)的时候。用例图中的行为者,可能是对象模型中的对象。用例图中的行为者,可能是对象模型中的对象。功能模型中的处理(或用例)可能产生动态模型中的事件。功能模型中的处理(或用例)可能产生动态模型中的事件。育山讹嘛滞娱按苟体离乌遏萄笋毒章屿滴缉高渗累娜阴杜程怖蘸墟擒第兽第2章面向对象方法学导论第2章面向对象方法学导论府剖缕锡蘸艰披胯衅返钳衬渐痛嫁僵健矗袍悬宁擂七暮罩酷孵溅背辞收驶第2章面向对象方法学导论第2章面向对象方法学导论P43P43:1 1 EmailEmail:vrlab_vrlab_作 业渝嘿吞磷侧括器棍膛摘飘嗜瞪肮促柑捧惩缅银坠蹿镊颓网滁照设诧录卤绿第2章面向对象方法学导论第2章面向对象方法学导论

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号