统一建模语言第2章 对象模型.ppt

上传人:仙人指路1688 文档编号:2912605 上传时间:2023-03-03 格式:PPT 页数:25 大小:366.50KB
返回 下载 相关 举报
统一建模语言第2章 对象模型.ppt_第1页
第1页 / 共25页
统一建模语言第2章 对象模型.ppt_第2页
第2页 / 共25页
统一建模语言第2章 对象模型.ppt_第3页
第3页 / 共25页
统一建模语言第2章 对象模型.ppt_第4页
第4页 / 共25页
统一建模语言第2章 对象模型.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《统一建模语言第2章 对象模型.ppt》由会员分享,可在线阅读,更多相关《统一建模语言第2章 对象模型.ppt(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();public:公有功能:ge

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

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

7、。,继承的分类,从继承源上划分为:单继承和多继承单继承 一个人只能继承一个人的财产多继承 一个人既可以继承父母的财产,又可以继承其他亲属的财产。从继承内容上划分为:取代、包含、受限和特化继承。取代继承 徒弟掌握了师傅所有的技术,在任何需要师傅的地方都可以由徒弟来代替;包含继承“水果”是一类对象,“苹果”是一种特殊的水果。“苹果”继承了“水果”的所有特征;任何一个苹果都是一个水果,即苹果包含了水果具有的所有特征;受限继承“驼鸟”是一种特殊的鸟,它不能继承鸟会飞的特征;特化继承“工程师”是一类特殊的人,他们比一般人具有更多的特有信息。,继承性的优点,能清晰体现相关类间的层次结构关系;可大大增加代码

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

9、面向对象的基本概念,8.1.2 面向对象的基本概念,多态,运算符重载30+4035.35+40.21object1+object2,函数重载print(20)print(“abcde”)print(a)print(3.45*9.2),面向对象基本概念-多态,多态,/编译器静态确定所调用的函数 SmallGasEngine guzzler;ChainSawEngine buz;TillerEngine roto;LawnMowerEngine briggs;guzzler.FillTank();buz.FillTank();roto.FillTank();briggs.FillTank();,多

10、态,/运行时动态确定所调用的函数 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;,

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号