统一建模语言第2章对象模型课件

上传人:aa****6 文档编号:54564058 上传时间:2018-09-15 格式:PPT 页数:25 大小:118.50KB
返回 下载 相关 举报
统一建模语言第2章对象模型课件_第1页
第1页 / 共25页
统一建模语言第2章对象模型课件_第2页
第2页 / 共25页
统一建模语言第2章对象模型课件_第3页
第3页 / 共25页
统一建模语言第2章对象模型课件_第4页
第4页 / 共25页
统一建模语言第2章对象模型课件_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《统一建模语言第2章对象模型课件》由会员分享,可在线阅读,更多相关《统一建模语言第2章对象模型课件(25页珍藏版)》请在金锄头文库上搜索。

1、第2章 对象模型,1 面向对象基本思想,从现实世界中客观存在的事物(对象)出发来构造系统并在系统结构中运用人类的自然思维方式对问题领域内的人物、事情等的抽象。,运用的思维方式,抽象分类组合继承封装,面向对象的含义,面向对象不仅是一些具体的软件开发技术,它是一整套关于如何看待软件系统与现实世界关系、以何种观点来研究问题并进行求解、以及如何进行系统构造的软件方法学。,用面向对象思想构 造软件的主要内容,对象是系统的基本单位对象的属性和操作组成一个完整的对象具有共同特征的对象抽象成类 对对象的类进一步抽象,形成类簇 对象之间存在静态关系和动态关系,1对象模型,OO方法的抽象技术 OO方法的封装技术

2、OO方法的继承机制,OO方法的抽象技术(Abstraction),抽象是指将实际问题化简为计算机能处理和表示的形式。OO方法比其它已有方法从应用设计到解决方案有更高的抽象性和更好的对应性。 主要原因是: 对象具有极强的抽象表达能力 OO方法采用对象来表达一切事物。由于对象具有不同的属性,使得OO方法具有很强的建模能力。 对象实现了抽象的数据类型 在对象抽象的基础上,OO方法更进一步提出对象类的概念,从而实现了更高层的抽象。用户可以根据实际问题的需要,自定义对象类的机制被称为“抽象的数据类型”,它使OO方法具有更强的解决复杂问题的能力。 规范化的抽象方法 OO方法的抽象技术更加接近于人类认识客观

3、事物的思维方法。寻找要求解的对象实体、研究其属性和功能、再根据实体的性质、功能将它们组成不同的功能模块。,OO方法的封装技术(Encapsulation),在程序设计中,封装是指将数据及与这些数据有关的操作集合放在一起,形成一个能动的实体对象(黑匣子)。用户不必知道对象行为的实现细节,只要根据对象提供的外部特征及接口来访问对象。 所谓“封装性”是一种信息隐藏技术,其目的是将对象的设计者和对象的使用者分开。 对象的封装性体现在: 具有清楚的边界 对象的数据结构和操作限定与其中 具有统一的外部接口(也称消息模式) 它描述了对象之间的相互作用、请求和响应 代码保护 对象内部的实现代码受到封装壳的保护

4、,其它对象不能直接修改本对象所拥有的数据和代码。,封装机制的目的,将对象的使用者和设计者分开;使用者不必知道对象行为实现的细节,只需用设计者提供的协议(消息)命令对象去实现其动作。 协议(Protocol)是一个对象对外服务的说明,它声明对象可以为外界做什么。请求对象进行操作的唯一途径就是通过协议中提供的消息进行的。协议实际上是一个对象所能接受的所有公有消息的集合。,STUDENT对象类举例,class student private: 私有功能:changemark只供char *name; 对象自己使用int mark;char *major ; void changemark();pub

5、lic : 公有功能:getname和char *getname( ); getmajor可供外界char *getmajor(): 对象使用protected:int getmark( ); 被保护功能:getmark,虽向外; 界公布,但只能由为排生类对象提供服务。,OO方法的继承机制(Inheritance),继承所表达的是一种对象类之间的相互关系,它使得某类对象可以继承另一类对象的特征和能力。 继承性的含义是:自动共享类的对象的全部特征的一种机制。它包括: 继承性 新的对象自动继承该类的特征; 继承传递性 子类自动继承其父类的特征;对多层类结构,下层子类可以继承其上各层父类的特征; 多

6、重继承性 子类可以从它的多个父类(超类)中继承它们的特征。,继承性举例,在“人”类中,大学生可以继承“人”和“学生”的特征(继承传递);对于在职研究生既可以继承“学生”的特征,又可以继承“教师”的特征(多重继承)。,人,身份证号: 姓名:,学号: 校名,学生,大学生,专业: 班级:,身份证号:xxxxxxx 姓名:刘小明,学生:,学生:9601078 校名:西安交通大学,大学生:,专业:计算机 班级:962班,人:,具有继承关系的对象的特性,对象类间具有共享特征(包括数据和程序代码的共享) 对象类间具有细微的差别或新增部分(包括非共享的程序代码和数据) 对象类间具有层次结构。 继承所具有的作用

7、有两个方面: 减少代码冗余 通过协调性减少相互之间的接口和界面。,继承的分类,从继承源上划分为:单继承和多继承 单继承 一个人只能继承一个人的财产 多继承 一个人既可以继承父母的财产,又可以继承其他亲属的财产。 从继承内容上划分为:取代、包含、受限和特化继承。 取代继承 徒弟掌握了师傅所有的技术,在任何需要师傅的地方都可以由徒弟来代替; 包含继承 “水果”是一类对象,“苹果”是一种特殊的水果。“苹果”继承了“水果”的所有特征;任何一个苹果都是一个水果,即苹果包含了水果具有的所有特征; 受限继承 “驼鸟”是一种特殊的鸟,它不能继承鸟会飞的特征; 特化继承 “工程师”是一类特殊的人,他们比一般人具

8、有更多的特有信息。,继承性的优点,能清晰体现相关类间的层次结构关系; 可大大增加代码的重用性; 通过增强一致性来减少模块见的接口和界面,大大增加可维护性; 是自动传播代码的有利工具 在一般类基础上构造、建立、扩充新类的最有效的手段。,6. 多态性(Polymorphism)当同样的消息可以被送到一个父类的对象和它的子类的对象上时,被称作多态性。即相同的操作的消息发送给不同的对象时,每个对象将根据自己所属类中所定义的操作去执行,故产生不同的结果。多态即一个名字可具有多种语义。优点:多态性机制不仅增加了面向对象软件系统的灵活性、可理解性和可维护性,进一步减少了信息冗余,而且显著提高了软件的可重用性

9、和可扩充性。,例如: “绘图”操作,作用在“椭圆” 和“矩形” 上,画出不同的图形。,8.1.2 面向对象的基本概念,8.1.2 面向对象的基本概念,多态,运算符重载 30 + 40 35.35 + 40.21 object1 + object2,函数重载 print(20) print(“abcde”) print(a) print(3.45 * 9.2),面向对象基本概念-多态,多态,/编译器静态确定所调用的函数SmallGasEngine guzzler;ChainSawEngine buz;TillerEngine roto;LawnMowerEngine briggs;guzzler

10、.FillTank(); buz.FillTank();roto.FillTank();briggs.FillTank();,多态,/运行时动态确定所调用的函数SmallGasEngine *engine;switch(rand() % 4) case 0: engine = /通过动态联编调用合适的函数,方法的覆盖,在子类中定义与父类相同的方法名称,称为方法的覆盖。 注: 在方法的覆盖中,由于同名方法隶属于不同的类,所以要解决调用如何区分他们的问题,只需要在方法名前面使用不同的类名或不同类的对象名即可。 子类在重新定义父类已有的方法时,应保持与父类完全相同的方法头声明,即应与父类有完全相同的

11、方法名、返回值和参数列表。,方法的重载,子类定义同名方法来覆盖父类的方法是面向对象方法中多态技术的一种实现。 所谓多态是指同名的不同方法共存。有助于隐藏对象内部的细节,提高程序的抽象程度,是面向对象程序设计中经常使用的方法。 实现多态技术的另一种重要的手段就是方法的重载。 重载:类对自身已有的同名法的重新定义。重载与覆盖不同,重载不是子类对父类同名方法的重新定义。,方法的重载是同类中同名方法共存的情况,不能像方法的覆盖那样采用类名前缀来区分,而应该采用通过参数列表来区分不同的方法。 同类中同名的不同方法需要有不同的参数列表,包括参数顺序的不同和参数类型的不同。,重载函数C+中可以在同一程序中多次定义同名函数, 只要各函数间的参数个数或类型不同, 例如:,int Abs(int n) return n0?-n: n; float Abs(float n) return n0?-n: n; ,

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

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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