面向对象的概念与模型汇总课件.ppt

上传人(卖家):晟晟文业 文档编号:4941484 上传时间:2023-01-27 格式:PPT 页数:72 大小:636KB
下载 相关 举报
面向对象的概念与模型汇总课件.ppt_第1页
第1页 / 共72页
面向对象的概念与模型汇总课件.ppt_第2页
第2页 / 共72页
面向对象的概念与模型汇总课件.ppt_第3页
第3页 / 共72页
面向对象的概念与模型汇总课件.ppt_第4页
第4页 / 共72页
面向对象的概念与模型汇总课件.ppt_第5页
第5页 / 共72页
点击查看更多>>
资源描述

1、第6章 面向对象的概念与模型思考题v软件开发中为什么要使用面向对象方法?v面向对象分析方法与结构化分析方法有哪些相似之处?有何区别?v面向对象方法是对过去的一个完全突破,还是“换汤不换药”传统方法学的缺点v存在的问题:生产率提高的幅度远不能满足需要;软件重用程度很低;软件仍然很难维护;软件往往不能真正满足用户需要。v出现上述问题的原因很多,最根本的是瀑布型开发模型和结构化技术的缺点。传统方法学的缺点v瀑布型模型的缺点:僵化 瀑布模型要求:生命周期各阶段间遵守严格的顺序。实际情况:软件开发往往在反复实践中完成。瀑布模型要求:预先定义并“冻结”软件需求。实际情况:某些系统的需求的一个逐渐明确的过程

2、,且预先定义的需求到软件完成时可能已经过时。传统方法学的缺点v结构化技术的缺点:本质上是功能分解,以实现功能的过程为中心,而用户的需求变化主要是针对功能的。这就使基于过程的设计不易被理解;且功能变化往往引起结构变化较大,稳定性不好。系统有明确的边界定义,且系统结构依赖于系统边界的定义,这样的系统不易扩充和修改。结构分析技术对处理的分解过程带有任意性,不同的开发人员开发相同的系统时,可能经过分解而得出不同的软件结构。数据与操作分开处理,可能造成软构件对具体应用环境的依赖,可重用性(reusability)较差。解决问题的途径v新的软件开发模型,如快速原型方法、螺旋型方法等;v新的软件开发方法学面

3、向对象方法学。面向对象方法学OOMv特点:尽可能模拟人类习惯的思维方式,即问题域与求解域在结构上尽可能一致。与传统方法相反,OOM以数据或信息为主线,把数据和处理结合构成统一体对象。这时程序不再是一系列工作在数据上的函数集合,而是相互协作又彼此独立的对象的集合。OO方法基于的方法基于的“世界观世界观”:世界是由对象构成的;世界是由对象构成的;对象有其自己的属性和内部运动规律;对象有其自己的属性和内部运动规律;对象之间的相互作用,构成了大千世界的对象之间的相互作用,构成了大千世界的 各式各样的不同系统。各式各样的不同系统。面向对象的基本概念,类:物以类聚是一组具有和的对象的集合。v类定义可以视为

4、一个具有类似特性与共同行为的对象的,可用来产生对象。实例v对象的状态则包含在实例的属性中。UMLUML类图类图Blow:StudentDr.Brown:Professor例例:class Post_office private:loc_type location;emp_type employee;public:void send(req_type request,money_type payment);void sell(int goods,money_type payment);main()Post_office My_PO;req_type My_request;money_type M

5、y_payment;My_PO.Send(My_request,My_payment);封装是指将对象的状态信息(属性)和行为(方法)捆绑为一个逻辑单元,并尽可能隐藏对象的内部细节。v封装是面向对象的一个重要原则,它有两个涵义:第一个是把对象的全部属性和全部操作结合在一起,形成一个不可分割的独立对象。第二个是“信息隐藏”,即尽可能隐藏对象的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系。v封装可以提高事物的独立性,而且还可以有效地避免“交叉感染”和减少“波动效应”。继承:相似性与多样性v继承(inheritance):类可分层,下层子类与上层父类有相同特征,称为继承。是的技

6、术。v新类的定义可以是和的组合。新类复用既存的定义,而。应地可当做派生类来引用。v使用继承设计一个新类,可以视为描述一个新的对象集,它是既存类所描述对象集的子集合。v这个新的子集合可以认为是。类是类的特殊化。是限制为四条边的多边形。我们还可以进一步地把类特殊化为。v类的操作可以等同于类的操作,而类的操作又与类的操作相同。v新类的操作还可以被看做是既存类操作的一个。例如,从一个既存的类派生的类可能不仅是类子集合定义的特殊化,而且还可能在新类的操作中引入新的能力。类的继承层次类的继承层次v在类的继承层次中,Quadrilateral的实际参数可以替换Polygon的形式参数。v类Quadrilat

7、eral的操作与类Polygon的操作是相容的vQuadrilateral的操作可响应Polygon操作的所有消息。继承的好处v继承使得导出类变得非常简洁明了,导出类中只包含那些使它们与父类不同的最本质的特性。v通过继承,可以重复使用和扩展那些经过测试的没有修改过的代码。v最好的方法是从现存的类中导出新的子类。v分级分类是人类组织和利用信息的技能。按照这种方法组织规划软件,使得结构简单,易于维护和扩展。v一旦建立了类的层次结构,并且编写了一个应用程序的代码,改变非叶节点的类将对整个层次结构产生“波动影响”。v所以,一旦一个应用程序的非叶节点类的代码编写完成后,就尽量避免向其中增加新的特征。导出

8、类的规则v通过添加特性来扩展基本类v研究从父类继承的操作v子类执行父类的操作的特殊化处理是通过一种称为替换(overriding)的方法实现的。导出类的规则 cont.v不能改变特征的语义(目的和含义)v不能替代属性 v不能删除特性 多重继承 v在一个类层次结构种任何给定的类都允许由两个或多个类作为直接父类,称为多重继承。Person Student Professor Professor Student消息:合作之道v消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明。消息包括提供服务的对象标识、服务标识、输入信息、返回信息。(可能是空的),并。vMessa

9、ge:=object_ID.method_ID(parameter(s);例例:class Post_office private:loc_type location;emp_type employee;public:void send(req_type request,money_type payment);void sell(int goods,money_type payment);main()Post_office My_PO;req_type My_request;money_type My_payment;My_PO.Send(My_request,My_payment);多态性

10、polymorphismv多态性是指在一般类中定义的属性或操作被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为,使得同一个属性或操作在一般类及其各个特殊类中具有不同的语义。v与多态性的实现有关的语言功能有:重载overload在子类中对继承来的属性或操作进行重新定义;动态绑定dynamic binding在运行时根据对象接收的消息动态地确定要链接哪一段操作代码;类属generic操作参数的类型可以是参数化的。重载vStudent类可以合理地定义不同的print()方法标识:boolean print();void print(String fileName);void print(i

11、nt detailLevel);void print(int detailLevel,String fileName);void print(String reportTitle,int maxPage);关联 associationv关联:类之间存在的结构关系。Student 1.n 1?advises 1.n 1 Professor+advisor 0.n 0.n?study 0.n 0.n Student Course n n n n PlanOfStudy Course反身关联 v反身关联(reflexive association):在相同类的两个实例之间发生关系。v一个课程是很多课

12、程的预修课程,而且一个课程可以有很多的预修课程。Course 0.n?prerequisite 0.n 0.n 0.n多元关联 v一个学生可以选修一门课程、一个教授讲授一门课程、一个教授指导一个学生。Course?attend?teach?advise Student Professor 0.n 0.n?prerequisite 0.n 0.n多值性v多值性multiplicity是指某个类有多少对象可以和另一个类的单个对象关联。1:1-类A的一个实例仅对应着类B的一个实例 1:N-对于类A的一个实例,有很多类B的实例通过某种关系与其关联。N:N-对于类A的一个实例,可能有很多类B的实例与之关

13、联,反之亦然。链接 link链接advisesadvisesadvisesBlow:StudentLee:StudentSmith:StudentDr.Brown:Professor聚合v聚合aggregation是关联的一种特殊形式,常被认为“包含”、“由组成”关系,即部分类与由它们组成的类之间是一种整体部分(part-whole)关联。v聚合表示两个类之间的一种关系。1.n 1 1.n 1 University School聚合 HomeComputer 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 Speaker CPUBox Keyboard Moni

14、tor Mouse CD-ROM/DVD-ROM Harddriver Mainboard CPU RAM GraphicCard SoundCard Button MouseBall面向对象的基本概念v对象(属性与方法)v类与实例v封装(信息隐藏)v继承(多重继承)v消息v多态性(重载、动态绑定)v关联与链接v聚合OOM=Object +Class +Inheritance +Communication with messages面向对象方法学数据实体数据实体输入输入输出输出属于该对象属于该对象的数据的数据对象对象处理数据的方法处理数据的方法传统方法和面向对象方法的比较把问题当作一组相互作用

15、的把问题当作一组相互作用的实体,并确定实体间关系实体,并确定实体间关系面向功能面向功能 ,把系把系统看成一组功能统看成一组功能OOM:以object 为核心,强调对现实概念的模拟而不强调算法。“面向对象方法学的基本原则,是按照人们习惯的思维方式建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统”。Class:由特殊到一般的归纳(induction)Inheritance:由一般到特殊的演绎(deduction)传统方法:面向过程设计,以计算为核心,数据传统方法:面向过程设计,以计算为核心,数据与操作分离,不易理解。与操作分离,不易理解。OOM的优点OOM:以object模拟实体,

16、需求变化不会引起结构的整体变化,因为实体相对稳定,故系统也相应稳定。传统方法:结构依赖于功能,不稳定。传统方法:结构依赖于功能,不稳定。传统方法:通过建立标准函数库来重用软构件。传统方法:通过建立标准函数库来重用软构件。但标准函数缺少必要的但标准函数缺少必要的“柔性柔性”,难以适应不同场合的不同需要。难以适应不同场合的不同需要。OOM:一个class所有的instances都可重用它的代码;由 inheritance派生出的新的class可重用其父类的代码,并且可以修改、扩充而不影响其父类的使用。v稳定性好:稳定性好:软件功能需求的变化不牵动全软件功能需求的变化不牵动全局,只需局部修改;局,只

17、需局部修改;vClass 独立性强:独立性强:只要修改不涉及只要修改不涉及classclass的的对外接口,则内部修改完全不影响外部调对外接口,则内部修改完全不影响外部调用;用;vInheritanceInheritance和多态性和多态性(polymorphism)(polymorphism)使其使其很容易被修改和扩充;很容易被修改和扩充;v容易理解;容易理解;传统方法:可维护性是最令人头痛的问题。传统方法:可维护性是最令人头痛的问题。OOMOOM:从以下几方面改善了可维护性从以下几方面改善了可维护性 有这一条就什么都好办了!有这一条就什么都好办了!容易测试、调试容易测试、调试。这一点还可商

18、榷这一点还可商榷注:注:小结类类类的实例类的实例类定义示例类定义示例正方形正方形边长边长位置位置边界颜色边界颜色内部颜色内部颜色画图画图擦图擦图移动移动(0个或个或1个)个)(0个或多个)个或多个)1+(1个或多个)个或多个)1 2,4(12个或个或4个)个)打打电电话话者者拿拿起起电电话话受受话话器器 电电话话忙忙音音开开始始 打打电电话话者者拨拨数数字字(8 8)电电话话忙忙音音结结束束 打打电电话话者者拨拨数数字字(2 2).打打电电话话者者拨拨数数字字(3 3)接接电电话话者者的的电电话话开开始始振振铃铃 铃铃声声在在打打电电话话者者的的电电话话上上传传出出 接接电电话话者者回回答答 接接电电话话者者的的电电话话停停止止振振铃铃 铃铃声声在在打打电电话话者者的的电电话话中中消消失失 通通电电话话 .

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(面向对象的概念与模型汇总课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|