欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第9章 面向对象方法学精选文档.ppt

    • 资源ID:47939428       资源大小:3.84MB        全文页数:93页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第9章 面向对象方法学精选文档.ppt

    第第9 9章章 面向对象方法学面向对象方法学本讲稿第一页,共九十三页上次课内容回顾上次课内容回顾classPCI8360vclassPCI8360v public:public:PCI8360v(void);PCI8360v(void);virtualPCI8360v(void);virtualPCI8360v(void);voidPCI_init();voidPCI_init();voidPCI_clos();voidPCI_clos();shortPCI_read();shortPCI_read();classArPathTrack:publicArActionpublic:ArPathTrack(ArPosePose);virtualArPathTrack(void);virtualArActionDesired*fire(ArActionDesiredcurrentDesired);virtualvoidsetRobot(ArRobot*robot);protected:ArRangeDevice*mySonar;ArActionDesiredmyDesired;public:PCI8360vmyPCI;本讲稿第二页,共九十三页第第9章章 面向对象方法学引论面向对象方法学引论9.1 面向对象方法学概述面向对象方法学概述9.2 面向对象的概念面向对象的概念9.3 面向对象建模面向对象建模9.4 对象模型对象模型本讲稿第三页,共九十三页前言:关于传统方法学的总结前言:关于传统方法学的总结u传统的生命周期方法学的本质,传统的生命周期方法学的本质,是在具体的是在具体的软件开发工作开始之前,通过需求分析预先软件开发工作开始之前,通过需求分析预先定义软件需求,然后一个阶段接着一个阶段定义软件需求,然后一个阶段接着一个阶段有条不紊地开发用户所要求的软件,实现预有条不紊地开发用户所要求的软件,实现预先定义的软件需求。先定义的软件需求。u但它但它并不能完全消除软件危机。并不能完全消除软件危机。生命周期方生命周期方法学仍然有许多不足之处,对某些类型的软法学仍然有许多不足之处,对某些类型的软件开发,这种方法学比较适用,对另一些类件开发,这种方法学比较适用,对另一些类型的软件则可能完全不适用。型的软件则可能完全不适用。本讲稿第四页,共九十三页前言:传统方法学存在的问题前言:传统方法学存在的问题1 1生产率提高的幅度远不能满足需要生产率提高的幅度远不能满足需要pp生命周期方法学强调需求分析的重要性,强调在每个阶段结束之生命周期方法学强调需求分析的重要性,强调在每个阶段结束之生命周期方法学强调需求分析的重要性,强调在每个阶段结束之生命周期方法学强调需求分析的重要性,强调在每个阶段结束之前必须进行评审,从而提高了软件开发的成功率,减少了重大返前必须进行评审,从而提高了软件开发的成功率,减少了重大返前必须进行评审,从而提高了软件开发的成功率,减少了重大返前必须进行评审,从而提高了软件开发的成功率,减少了重大返工的次数;工的次数;工的次数;工的次数;pp开发过程中实行严格的质量管理,采用先进的技术方法(主要开发过程中实行严格的质量管理,采用先进的技术方法(主要开发过程中实行严格的质量管理,采用先进的技术方法(主要开发过程中实行严格的质量管理,采用先进的技术方法(主要是结构分析、设计、编程技术)和软件工具,也都加快了软件是结构分析、设计、编程技术)和软件工具,也都加快了软件是结构分析、设计、编程技术)和软件工具,也都加快了软件是结构分析、设计、编程技术)和软件工具,也都加快了软件开发的速度。开发的速度。开发的速度。开发的速度。pp但开发效率的提高仍然很有限,提高的幅度远远赶不上对软件产但开发效率的提高仍然很有限,提高的幅度远远赶不上对软件产但开发效率的提高仍然很有限,提高的幅度远远赶不上对软件产但开发效率的提高仍然很有限,提高的幅度远远赶不上对软件产品的需要。从用户提出要求到他们最终得到所需要的目标系统,品的需要。从用户提出要求到他们最终得到所需要的目标系统,品的需要。从用户提出要求到他们最终得到所需要的目标系统,品的需要。从用户提出要求到他们最终得到所需要的目标系统,往往需要经过几年甚至更长的延迟时间。往往需要经过几年甚至更长的延迟时间。往往需要经过几年甚至更长的延迟时间。往往需要经过几年甚至更长的延迟时间。本讲稿第五页,共九十三页 2 2软件重用程度很低软件重用程度很低pp重用也称为再用或复用,是指同一事物不经修改或稍加改动就多次重复重用也称为再用或复用,是指同一事物不经修改或稍加改动就多次重复重用也称为再用或复用,是指同一事物不经修改或稍加改动就多次重复重用也称为再用或复用,是指同一事物不经修改或稍加改动就多次重复使用。软件重用是节约人力,提高软件生产率的重要途径。使用。软件重用是节约人力,提高软件生产率的重要途径。使用。软件重用是节约人力,提高软件生产率的重要途径。使用。软件重用是节约人力,提高软件生产率的重要途径。pp结构分析、结构设计和结构程序设计(简写为结构分析、结构设计和结构程序设计(简写为结构分析、结构设计和结构程序设计(简写为结构分析、结构设计和结构程序设计(简写为 SASASASASDSDSDSDSPSPSPSP)技术,)技术,)技术,)技术,虽然给软件产业带来了巨大进步,但却没能很好地解决软件重虽然给软件产业带来了巨大进步,但却没能很好地解决软件重虽然给软件产业带来了巨大进步,但却没能很好地解决软件重虽然给软件产业带来了巨大进步,但却没能很好地解决软件重用问题。用问题。用问题。用问题。pp几乎每次开发一个新的软件系统时,都要针对这个具体的系统几乎每次开发一个新的软件系统时,都要针对这个具体的系统几乎每次开发一个新的软件系统时,都要针对这个具体的系统几乎每次开发一个新的软件系统时,都要针对这个具体的系统作大量重复而又繁琐的工作。作大量重复而又繁琐的工作。作大量重复而又繁琐的工作。作大量重复而又繁琐的工作。前言:传统方法学存在的问题前言:传统方法学存在的问题本讲稿第六页,共九十三页3.3.软件仍然很难维护软件仍然很难维护pp传统的生命周期方法学强调文档资料的重要性,规定最终的软件产品应传统的生命周期方法学强调文档资料的重要性,规定最终的软件产品应传统的生命周期方法学强调文档资料的重要性,规定最终的软件产品应传统的生命周期方法学强调文档资料的重要性,规定最终的软件产品应该由完整、致的配置成分组成;在软件开发整个过程中,该由完整、致的配置成分组成;在软件开发整个过程中,该由完整、致的配置成分组成;在软件开发整个过程中,该由完整、致的配置成分组成;在软件开发整个过程中,始终强调软始终强调软始终强调软始终强调软件的可读性、可修改性和可测试性是软件的重要质量指标件的可读性、可修改性和可测试性是软件的重要质量指标件的可读性、可修改性和可测试性是软件的重要质量指标件的可读性、可修改性和可测试性是软件的重要质量指标。因此,对这。因此,对这。因此,对这。因此,对这样的软件所进行的维护属于结构化维护的范畴,可维护性有比较样的软件所进行的维护属于结构化维护的范畴,可维护性有比较样的软件所进行的维护属于结构化维护的范畴,可维护性有比较样的软件所进行的维护属于结构化维护的范畴,可维护性有比较明显的提高,软件从不能维护变成基本上可以维护。明显的提高,软件从不能维护变成基本上可以维护。明显的提高,软件从不能维护变成基本上可以维护。明显的提高,软件从不能维护变成基本上可以维护。pp但实践表明,即使是用生命周期方法学开发出的软件,维护起来仍然相但实践表明,即使是用生命周期方法学开发出的软件,维护起来仍然相但实践表明,即使是用生命周期方法学开发出的软件,维护起来仍然相但实践表明,即使是用生命周期方法学开发出的软件,维护起来仍然相当困难,软件维护成本仍然很高。当困难,软件维护成本仍然很高。当困难,软件维护成本仍然很高。当困难,软件维护成本仍然很高。前言:传统方法学存在的问题前言:传统方法学存在的问题本讲稿第七页,共九十三页 4 4软件往往不能真正满足用户需要软件往往不能真正满足用户需要pp用传统方法开发涉及多种不同领域知识的大型软件系统,或开用传统方法开发涉及多种不同领域知识的大型软件系统,或开用传统方法开发涉及多种不同领域知识的大型软件系统,或开用传统方法开发涉及多种不同领域知识的大型软件系统,或开发需求模糊或需求动态变化的系统时,所开发出的软件系统往发需求模糊或需求动态变化的系统时,所开发出的软件系统往发需求模糊或需求动态变化的系统时,所开发出的软件系统往发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。往不能真正满足用户的需要。往不能真正满足用户的需要。往不能真正满足用户的需要。pp所谓所谓所谓所谓“不能真正满足用户的需要不能真正满足用户的需要不能真正满足用户的需要不能真正满足用户的需要”,主要有以下两种表现:,主要有以下两种表现:,主要有以下两种表现:,主要有以下两种表现:pp一种是开发人员不能完全获得或不能彻底理解用户的需求,以致一种是开发人员不能完全获得或不能彻底理解用户的需求,以致一种是开发人员不能完全获得或不能彻底理解用户的需求,以致一种是开发人员不能完全获得或不能彻底理解用户的需求,以致开发出的软件系统与用户预期的系统不一致,不能满足用户的需开发出的软件系统与用户预期的系统不一致,不能满足用户的需开发出的软件系统与用户预期的系统不一致,不能满足用户的需开发出的软件系统与用户预期的系统不一致,不能满足用户的需要。要。要。要。pp另一种表现是,所开发出的系统不能适应用户需求经常变化的另一种表现是,所开发出的系统不能适应用户需求经常变化的另一种表现是,所开发出的系统不能适应用户需求经常变化的另一种表现是,所开发出的系统不能适应用户需求经常变化的情况,系统的稳定性和可扩充性不能满足要求。情况,系统的稳定性和可扩充性不能满足要求。情况,系统的稳定性和可扩充性不能满足要求。情况,系统的稳定性和可扩充性不能满足要求。前言:传统方法学存在的问题前言:传统方法学存在的问题本讲稿第八页,共九十三页前言:前言:出现问题的原因出现问题的原因1 1僵化的设计模型僵化的设计模型pp瀑布模型意味着在生命周期各阶段间存在着严格的顺序性和依赖性。瀑布模型意味着在生命周期各阶段间存在着严格的顺序性和依赖性。瀑布模型意味着在生命周期各阶段间存在着严格的顺序性和依赖性。瀑布模型意味着在生命周期各阶段间存在着严格的顺序性和依赖性。pp生命周期方法学特别强调预先定义需求的重要性。要求在着手进行具体生命周期方法学特别强调预先定义需求的重要性。要求在着手进行具体生命周期方法学特别强调预先定义需求的重要性。要求在着手进行具体生命周期方法学特别强调预先定义需求的重要性。要求在着手进行具体的开发工作之前,必须通过需求分析预先定义并的开发工作之前,必须通过需求分析预先定义并的开发工作之前,必须通过需求分析预先定义并的开发工作之前,必须通过需求分析预先定义并“冻结冻结冻结冻结”软件需求,软件需求,软件需求,软件需求,然后再一步一步地实现这些需求。然后再一步一步地实现这些需求。然后再一步一步地实现这些需求。然后再一步一步地实现这些需求。pp实践表明,在系统建立起来之前,往往很难仅仅依靠分析就确定出一套实践表明,在系统建立起来之前,往往很难仅仅依靠分析就确定出一套实践表明,在系统建立起来之前,往往很难仅仅依靠分析就确定出一套实践表明,在系统建立起来之前,往往很难仅仅依靠分析就确定出一套完整、准确、一致、有效的应用需求,这种预先定义需求的方法更不能完整、准确、一致、有效的应用需求,这种预先定义需求的方法更不能完整、准确、一致、有效的应用需求,这种预先定义需求的方法更不能完整、准确、一致、有效的应用需求,这种预先定义需求的方法更不能适应用户需求不断变化的情况。适应用户需求不断变化的情况。适应用户需求不断变化的情况。适应用户需求不断变化的情况。本讲稿第九页,共九十三页前言:前言:出现问题的原因出现问题的原因2.2.结构化技术的缺点结构化技术的缺点用这种技术开发出的软件,其用这种技术开发出的软件,其用这种技术开发出的软件,其用这种技术开发出的软件,其稳定性、可修改性和可重用性都比较差稳定性、可修改性和可重用性都比较差稳定性、可修改性和可重用性都比较差稳定性、可修改性和可重用性都比较差。pp围绕实现处理功能的围绕实现处理功能的围绕实现处理功能的围绕实现处理功能的“过程过程过程过程”来构造系统的。然而用户需求的变化大来构造系统的。然而用户需求的变化大来构造系统的。然而用户需求的变化大来构造系统的。然而用户需求的变化大部分是针对功能的部分是针对功能的部分是针对功能的部分是针对功能的不稳定性不稳定性不稳定性不稳定性pp清楚地定义了目标系统的边界,软件通过界面与客观世界通信。系统清楚地定义了目标系统的边界,软件通过界面与客观世界通信。系统清楚地定义了目标系统的边界,软件通过界面与客观世界通信。系统清楚地定义了目标系统的边界,软件通过界面与客观世界通信。系统结构依赖于对系统边界的定义,很难把这样的系统扩展到新的边界结构依赖于对系统边界的定义,很难把这样的系统扩展到新的边界结构依赖于对系统边界的定义,很难把这样的系统扩展到新的边界结构依赖于对系统边界的定义,很难把这样的系统扩展到新的边界系统较难修改和扩充系统较难修改和扩充系统较难修改和扩充系统较难修改和扩充pp把处理分解成子处理的过程多少带些任意性,并且把数据和操作作为分把处理分解成子处理的过程多少带些任意性,并且把数据和操作作为分把处理分解成子处理的过程多少带些任意性,并且把数据和操作作为分把处理分解成子处理的过程多少带些任意性,并且把数据和操作作为分离的实体离的实体离的实体离的实体可重用性差可重用性差可重用性差可重用性差本讲稿第十页,共九十三页面向对象方法的四个要点:面向对象方法的四个要点:(1)(1)(1)(1)面向对象方法面向对象方法面向对象方法面向对象方法用对象分解取代了传统方法的功能分解。用对象分解取代了传统方法的功能分解。用对象分解取代了传统方法的功能分解。用对象分解取代了传统方法的功能分解。面面面面向向向向对对对对象象象象的的的的软软软软件件件件系系系系统统统统是是是是由由由由对对对对象象象象组组组组成成成成的的的的,软软软软件件件件中中中中的的的的任任任任何何何何元元元元素素素素都都都都是是是是对象,复杂的软件对象由比较简单的对象组合而成。对象,复杂的软件对象由比较简单的对象组合而成。对象,复杂的软件对象由比较简单的对象组合而成。对象,复杂的软件对象由比较简单的对象组合而成。(2)(2)(2)(2)把把把把所所所所有有有有对对对对象象象象都都都都划划划划分分分分成成成成各各各各种种种种对对对对象象象象类类类类(简简简简称称称称为为为为类类类类,class)class)class)class),每每每每个个个个对对对对象象象象类类类类都都都都定定定定义义义义了了了了一一一一组组组组数数数数据据据据和和和和一一一一组组组组方方方方法法法法(methodmethodmethodmethod)。数数数数据据据据用用用用于于于于表表表表示示示示对对对对象象象象的的的的静静静静态态态态属属属属性性性性(attributeattributeattributeattribute),是是是是对对对对象象象象的的的的状状状状态态态态信信信信息息息息。方方方方法法法法,是是是是允许施加于该类对象上的操作,是该类所有对象共享的。允许施加于该类对象上的操作,是该类所有对象共享的。允许施加于该类对象上的操作,是该类所有对象共享的。允许施加于该类对象上的操作,是该类所有对象共享的。本讲稿第十一页,共九十三页(3)(3)(3)(3)按照子类按照子类按照子类按照子类(或称为派生类或称为派生类或称为派生类或称为派生类)与父类与父类与父类与父类(或称为基类或称为基类或称为基类或称为基类)的关系,的关系,的关系,的关系,把若干个对象类组成一个层次结构的系统把若干个对象类组成一个层次结构的系统把若干个对象类组成一个层次结构的系统把若干个对象类组成一个层次结构的系统(也称为类等级也称为类等级也称为类等级也称为类等级)。在这种层次结构中,通常下层的派生类具有和上层的基类在这种层次结构中,通常下层的派生类具有和上层的基类在这种层次结构中,通常下层的派生类具有和上层的基类在这种层次结构中,通常下层的派生类具有和上层的基类相相相相同的特性同的特性同的特性同的特性(包括数据和方法包括数据和方法包括数据和方法包括数据和方法),这种现象称为这种现象称为这种现象称为这种现象称为继承继承继承继承(inheritance)(inheritance)(inheritance)(inheritance)。低层的特性将屏蔽高层的同名特性(低层的特性将屏蔽高层的同名特性(低层的特性将屏蔽高层的同名特性(低层的特性将屏蔽高层的同名特性(overrideoverrideoverrideoverride)。)。)。)。如果如果如果如果在派生类中对某些特性又做了重新描述,则在派生类中的在派生类中对某些特性又做了重新描述,则在派生类中的在派生类中对某些特性又做了重新描述,则在派生类中的在派生类中对某些特性又做了重新描述,则在派生类中的这些特性将以新描述为准。这些特性将以新描述为准。这些特性将以新描述为准。这些特性将以新描述为准。(4)(4)(4)(4)对对对对象象象象彼彼彼彼此此此此之之之之间间间间仅仅仅仅能能能能通通通通过过过过传传传传递递递递消消消消息息息息互互互互相相相相联联联联系系系系。对对对对象象象象是是是是进进进进行行行行处处处处理理理理的的的的主主主主体体体体,必必必必须须须须发发发发消消消消息息息息请请请请求求求求它它它它执执执执行行行行它它它它的的的的某某某某个个个个操操操操作作作作,处处处处理理理理它它它它的的的的私私私私有有有有数数数数据据据据,而而而而不不不不能能能能从从从从外外外外界界界界直直直直接接接接对对对对它它它它的的的的私私私私有有有有数数数数据据据据进进进进行行行行操操操操作作作作。又又又又称称为为“封装性封装性”(encapsulationencapsulationencapsulationencapsulation)本讲稿第十二页,共九十三页p面向对象的方法学可以用下列方程来概括:面向对象的方法学可以用下列方程来概括:OO=objects+classes+inheritance+communiOO=objects+classes+inheritance+communication with messagescation with messagesp也也就就是是说说,面面向向对对象象就就是是既既使使用用对对象象又又使使用用类类和和继继承承等等机机制制,而而且且对对象象之之间间仅仅能能通通过过传传递消息实现彼此通信递消息实现彼此通信。本讲稿第十三页,共九十三页9.1.2 9.1.2 9.1.2 9.1.2 面向对象方法学的优点面向对象方法学的优点面向对象方法学的优点面向对象方法学的优点1.1.与人类习惯的思维方法一致与人类习惯的思维方法一致面面面面向向向向对对对对象象象象的的的的软软软软件件件件技技技技术术术术以以以以对对对对象象象象(object)(object)(object)(object)为为为为核核核核心心心心,用用用用这这这这种种种种技技技技术术术术开开开开发发发发出出出出的的的的软软软软件件件件系系系系统统统统由由由由对对对对象象象象组组组组成成成成。对对对对象象象象是是是是对对对对现现现现实实实实世世世世界界界界实实实实体体体体的的的的正正正正确确确确抽抽抽抽象象象象,它它它它是是是是由由由由描描描描述述述述内内内内部部部部状状状状态态态态表表表表示示示示静静静静态态态态属属属属性性性性的的的的数数数数据据据据,以以以以及及及及可可可可以以以以对对对对这这这这些些些些数数数数据据据据施施施施加加加加的的的的操操操操作作作作(表表表表示示示示对对对对象象象象的的的的动动动动态态态态行行行行为为为为),封封封封装装装装在在在在一一一一起起起起所所所所构构构构成成成成的的的的统统统统一一一一体体体体。对对对对象象象象之之之之间间间间通通通通过过过过传传传传递递递递消消消消息息息息互互互互相相相相联联联联系系系系,以以以以模模模模拟现实世界中不同事物彼此之间的联系。拟现实世界中不同事物彼此之间的联系。拟现实世界中不同事物彼此之间的联系。拟现实世界中不同事物彼此之间的联系。本讲稿第十四页,共九十三页9.1.2 9.1.2 9.1.2 9.1.2 面向对象方法学的优点面向对象方法学的优点面向对象方法学的优点面向对象方法学的优点2.2.稳定性好稳定性好由于现实世界中的实体是相对稳定的,因此,以对象为中由于现实世界中的实体是相对稳定的,因此,以对象为中由于现实世界中的实体是相对稳定的,因此,以对象为中由于现实世界中的实体是相对稳定的,因此,以对象为中心构造的软件系统也是比较稳定的。心构造的软件系统也是比较稳定的。心构造的软件系统也是比较稳定的。心构造的软件系统也是比较稳定的。3.3.可重用性好可重用性好有两种方法可以重复使用一个对象类:一种方法是创建该有两种方法可以重复使用一个对象类:一种方法是创建该有两种方法可以重复使用一个对象类:一种方法是创建该有两种方法可以重复使用一个对象类:一种方法是创建该类的实例,从而直接使用它;另一种方法是从它派生出一类的实例,从而直接使用它;另一种方法是从它派生出一类的实例,从而直接使用它;另一种方法是从它派生出一类的实例,从而直接使用它;另一种方法是从它派生出一个满足当前需要的新类。个满足当前需要的新类。个满足当前需要的新类。个满足当前需要的新类。4.4.较易开发大型软件产品较易开发大型软件产品本讲稿第十五页,共九十三页9.1.2 9.1.2 面向对象方法学的优点面向对象方法学的优点5.5.可维护性好可维护性好(1 1)面向对象的软件稳定性比较好。面向对象的软件稳定性比较好。(2 2)面向对象的软件比较容易修改。面向对象的软件比较容易修改。(3 3)面向对象的软件比较容易理解。面向对象的软件比较容易理解。(4 4)易于测试和调试。易于测试和调试。本讲稿第十六页,共九十三页图图9.1 9.1 喷泉模型喷泉模型p“喷泉喷泉”这个词体现了面向对象软件开发这个词体现了面向对象软件开发过程过程迭代和无缝迭代和无缝的特性的特性。图中代表不同阶段。图中代表不同阶段的圆圈相互重叠,这明确表示两个活动之间的圆圈相互重叠,这明确表示两个活动之间存在交迭;而面向对象方法存在交迭;而面向对象方法在概念和表示在概念和表示方法上方法上的一致性,保证了在各项开发活动的一致性,保证了在各项开发活动之间的无缝过渡之间的无缝过渡.p事实上,用面向对象方法开发软件时,事实上,用面向对象方法开发软件时,在分析、设计和编码等项开发活动之间在分析、设计和编码等项开发活动之间并不存在明显的边界并不存在明显的边界。图中在一个阶段。图中在一个阶段内的向下箭头代表该阶段内的迭代内的向下箭头代表该阶段内的迭代(或求精)。图中较小的圆圈代表维(或求精)。图中较小的圆圈代表维护,圆圈较小象征着采用了面向对象护,圆圈较小象征着采用了面向对象范型之后维护时间缩短了。范型之后维护时间缩短了。9.1.3 9.1.3 喷泉模型喷泉模型本讲稿第十七页,共九十三页9.2 9.2 面向对象的概念面向对象的概念9.2.1 9.2.1 对象对象n n概概概概念念念念:对对对对象象象象是是是是由由由由描描描描述述述述该该该该对对对对象象象象属属属属性性性性的的的的数数数数据据据据以以以以及及及及可可可可以以以以对对对对这这这这些些些些数据施加的所有操作封装在一起构成的统一体。数据施加的所有操作封装在一起构成的统一体。数据施加的所有操作封装在一起构成的统一体。数据施加的所有操作封装在一起构成的统一体。对对对对象象象象可可可可以以以以作作作作的的的的操操操操作作作作表表表表示示示示它它它它的的的的动动动动态态态态行行行行为为为为,通通通通常常常常把把把把对对对对象象象象的的的的操操操操作称为服务或方法(作称为服务或方法(作称为服务或方法(作称为服务或方法(MethodMethod)。)。)。)。本讲稿第十八页,共九十三页n对象的定义对象的定义(1)(1)(1)(1)定义定义定义定义1 1 1 1:对象是具有相同状态的一组操作的集合。对象是具有相同状态的一组操作的集合。对象是具有相同状态的一组操作的集合。对象是具有相同状态的一组操作的集合。(2)(2)(2)(2)定定定定义义义义2 2 2 2:对对对对象象象象是是是是对对对对问问问问题题题题域域域域中中中中某某某某个个个个东东东东西西西西的的的的抽抽抽抽象象象象,这这这这种种种种抽抽抽抽象象象象反反反反映映映映了了了了系系系系统统统统保保保保存存存存有有有有关关关关这这这这个个个个东东东东西西西西的的的的信信信信息息息息或或或或与与与与它它它它交交交交互互互互的的的的能能能能力力力力。也也也也就就就就是是是是说说说说,对对对对象象象象是是是是对对对对属属属属性性性性值和操作的封装。值和操作的封装。值和操作的封装。值和操作的封装。(3)(3)(3)(3)定定定定义义义义3 3 3 3:对对对对象象象象=ID,MS,DS,MIID,MS,DS,MIID,MS,DS,MIID,MS,DS,MI。其其其其中中中中,IDIDIDID是是是是对对对对象象象象的的的的标标标标识识识识或或或或名名名名字字字字,MSMSMSMS是是是是对对对对象象象象中中中中的的的的操操操操作作作作集集集集合合合合,DSDSDSDS是是是是对对对对象象象象的的的的数数数数据据据据结结结结构构构构,MIMIMIMI是是是是对对对对象象象象受受受受理理理理的的的的消息名集合消息名集合消息名集合消息名集合(即对外接口即对外接口即对外接口即对外接口)。本讲稿第十九页,共九十三页n 对象的特点对象的特点(1)(1)(1)(1)以数据为中心。以数据为中心。以数据为中心。以数据为中心。(2)(2)(2)(2)对象是主动的。它是进行处理的主体。对象是主动的。它是进行处理的主体。对象是主动的。它是进行处理的主体。对象是主动的。它是进行处理的主体。(3)(3)(3)(3)实现了数据封装。实现了数据封装。实现了数据封装。实现了数据封装。它的私有数据完全被封装在盒子内部,对外是隐藏的、不可见的,它的私有数据完全被封装在盒子内部,对外是隐藏的、不可见的,它的私有数据完全被封装在盒子内部,对外是隐藏的、不可见的,它的私有数据完全被封装在盒子内部,对外是隐藏的、不可见的,对私有数据的访问或处理只能通过公有的操作进行。对私有数据的访问或处理只能通过公有的操作进行。对私有数据的访问或处理只能通过公有的操作进行。对私有数据的访问或处理只能通过公有的操作进行。(4)(4)(4)(4)本质上具有并行性。本质上具有并行性。本质上具有并行性。本质上具有并行性。不同的对象能够独立的处理自身的数据,彼此通过发消息传不同的对象能够独立的处理自身的数据,彼此通过发消息传不同的对象能够独立的处理自身的数据,彼此通过发消息传不同的对象能够独立的处理自身的数据,彼此通过发消息传递信息完成通信。递信息完成通信。递信息完成通信。递信息完成通信。(5)(5)(5)(5)模块独立性好。模块独立性好。模块独立性好。模块独立性好。对象是面向对象的软件的基本模块。模块的内聚性强,耦合对象是面向对象的软件的基本模块。模块的内聚性强,耦合对象是面向对象的软件的基本模块。模块的内聚性强,耦合对象是面向对象的软件的基本模块。模块的内聚性强,耦合性弱。性弱。性弱。性弱。本讲稿第二十页,共九十三页9.2.2 9.2.2 其他概念其他概念1.1.1.1.类类类类(class)(class)(class)(class)“类类类类”是对具有相同数据和相同操作的一组相似对象的定义,是对具有相同数据和相同操作的一组相似对象的定义,是对具有相同数据和相同操作的一组相似对象的定义,是对具有相同数据和相同操作的一组相似对象的定义,类是对具有相同属性和行为的一个或多个对象的描述。类是对具有相同属性和行为的一个或多个对象的描述。类是对具有相同属性和行为的一个或多个对象的描述。类是对具有相同属性和行为的一个或多个对象的描述。例:类例:类例:类例:类(class)(class)(class)(class):圆(:圆(:圆(:圆(circlecirclecirclecircle)circlecirclecirclecircle:myCirclemyCirclemyCirclemyCircle2.2.2.2.实例实例实例实例(instance)(instance)(instance)(instance)实例就是由某个特定的类所描述的一个具体的对象,实例就是由某个特定的类所描述的一个具体的对象,实例就是由某个特定的类所描述的一个具体的对象,实例就是由某个特定的类所描述的一个具体的对象,实际上类是建立对象时使用的实际上类是建立对象时使用的实际上类是建立对象时使用的实际上类是建立对象时使用的“样板样板样板样板”。“对象对象对象对象”,既可以指一个具体的对象,可以泛指一般的对象,既可以指一个具体的对象,可以泛指一般的对象,既可以指一个具体的对象,可以泛指一般的对象,既可以指一个具体的对象,可以泛指一般的对象,“实例实例实例实例”,是指一个具体的对象。,是指一个具体的对象。,是指一个具体的对象。,是指一个具体的对象。例:实例例:实例例:实例例:实例(对象对象对象对象object)object)object)object):几个不同大小、位置的圆:几个不同大小、位置的圆:几个不同大小、位置的圆:几个不同大小、位置的圆。本讲稿第二十一页,共九十三页3.3.消息消息(message)(message)消息就是要求某个对象执行在定义它的那个类中所定义的消息就是要求某个对象执行在定义它的那个类中所定义的消息就是要求某个对象执行在定义它的那个类中所定义的消息就是要求某个对象执行在定义它的那个类中所定义的某个操某个操某个操某个操作的规格说明作的规格说明作的规格说明作的规格说明。通常,一个消息由下述。通常,一个消息由下述。通常,一个消息由下述。通常,一个消息由下述3 3 3 3部分组成:部分组成:部分组成:部分组成:.接收消息的对象;接收消息的对象;接收消息的对象;接收消息的对象;.消息选择符消息选择符消息选择符消息选择符(也称为消息名也称为消息名也称为消息名也称为消息名);.零个或多个变元。零个或多个变元。零个或多个变元。零个或多个变元。例:例:例:例:myCircle.show(Red)myCircle.show(Red)myCircle.show(Red)myCircle.show(Red)本讲稿第二十二页,共九十三页4.4.4.4.方法方法方法方法(method)(method)(method)(method)方法就是对象所能执行的操作,也就是类中所定义的方法就是对象所能执行的操作,也就是类中所定义的方法就是对象所能执行的操作,也就是类中所定义的方法就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的服务。方法描述了对象执行操作的算法,响应消息的服务。方法描述了对象执行操作的算法,响应消息的服务。方法描述了对象执行操作的算法,响应消息的方法。在方法。在方法。在方法。在C+C+C+C+语言中把语言中把语言中把语言中把方法称为成员函数方法称为成员函数方法称为成员函数方法称为成员函数。方法方法方法方法(Method)(Method)(Method)(Method):画圆、擦除圆、填充圆,显示圆。:画圆、擦除圆、填充圆,显示圆。:画圆、擦除圆、填充圆,显示圆。:画圆、擦除圆、填充圆,显示圆。5.5.5.5.属性属性属性属性(attribute)(attribute)(attribute)(attribute)属性就是类中所定义的数据属性就是类中所定义的数据属性就是类中所定义的数据属性就是类中所定义的数据,它是对客观世界实体所具有,它是对客观世界实体所具有,它是对客观世界实体所具有,它是对客观世界实体所具有的性质的抽象。类的每个实例都有自己特有的属性值。的性质的抽象。类的每个实例都有自己特有的属性值。的性质的抽象。类的每个实例都有自己特有的属性值。的性质的抽象。类的每个实例都有自己特有的属性值。在在在在C+C+C+C+语言中语言中语言中语言中把属性称为数据成员把属性称为数据成员把属性称为数据成员把属性称为数据成员.属性属性属性属性(Attribute)(Attribute)(Attribute)(Attribute):圆心坐标、圆的半径、圆的颜色,线:圆心坐标、圆的半径、圆的颜色,线:圆心坐标、圆的半径、圆的颜色,线:圆心坐标、圆的半径、圆的颜色,线形等。形等。形等。形等。本讲稿第二十三页,共九十三页pp【例题例题例题例题】C C C C中类、属性和方法的示例中类、属性和方法的示例中类、属性和方法的示例中类、属性和方法的示例ClassExample1ClassExample1staticpublicinta;staticpublicinta;/属性,静态数据成员,属于类所有属性,静态数据成员,属于类所有属性,静态数据成员,属于类所有属性,静态数据成员,属于类所有pulicintb;pulicintb;/非静态数据成员,属于实例所有非静态数据成员,属于实例所有非静态数据成员,属于实例所有非静态数据成员,属于实例所有voidMeth1()voidMeth1()/实例方法实例方法实例方法实例方法a=10;b=20;a=10;b=20;staticvoidMeth2()staticvoidMeth2()/静态实例方法静态实例方法静态实例方法静态实例方法a=30;/b=40;a=30;/b=40;publicstaticvoidExDemo()publicstaticvoidExDemo()ExampleE1=newExample1();ExampleE1=newExample1();/实例实例实例实例E1E1ExampleE2=newExample1();ExampleE2=newExample1();E1.Meth1();E1.Meth1();/E1.Meth2();/E1.Meth2();Example1.a=Example1.a+50;Example1.a=Example1.a+50;E2.b=Example1.a+60;E2.b=Example1.a+60;本讲稿第二十四页,共九十三页6.6.6.6.封装封装封装封装(encapsulation)(encapsulation)(encapsulation)(encapsulation)封装也就是信息隐藏,通过封装对外界隐藏了对象的实现细节。使用封装也就是信息隐藏,通过封装对外界隐藏了对象的实现细节。使用封装也就是信息隐藏,通过封装对外界隐藏了对象的实现细节。使用封装也就是信息隐藏,通过封装对外界隐藏了对象的实现细节。使用一个对象的时候,只需知道它向外界提供的接口形式,无须知道它的数据一个对象的时候,只需知道它向外界提供的接口形式,无须知道它的数据一个对象的时候,只需知道它向外界提供的接口形式,无须知道它的数据一个对象的时候,只需知道它向外界提供的接口形式,无须知道它的数据结构细节和实现操作的算法。结构细节和实现操作的算法。结构细节和实现操作的算法。结构细节和实现操作的算法。对象具有封装性的条件如下:对象具有封装性的条件如下:对象具有封装性的条件如下:对象具有封装性的条件如下:(1 1 1 1)有一个清晰的边界。有一个清晰的边界。有一个清晰的边界。有一个清晰的边界。所有私有数据和实现操作的代码都被封装在所有私有数据和实现操作的代码都被封装在所有私有数据和实现操作

    注意事项

    本文(第9章 面向对象方法学精选文档.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开