欢迎来到人人文库网! | 帮助中心 人人文档renrendoc.com美如初恋!
人人文库网
全部分类
  • 图纸下载>
  • 教育资料>
  • 专业文献>
  • 应用文书>
  • 行业资料>
  • 生活休闲>
  • 办公材料>
  • 毕业设计>
  • ImageVerifierCode 换一换
    首页 人人文库网 > 资源分类 > PPT文档下载  

    《对象基本概念》PPT课件.ppt

    • 资源ID:19840240       资源大小:572.31KB        全文页数:34页
    • 资源格式: PPT        下载积分:15积分
    扫码快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
    二维码
    微信扫一扫登录

    手机扫码下载

    请使用微信 或支付宝 扫码支付

    • 扫码支付后即可登录下载文档,同时代表您同意《人人文库网用户协议》

    • 扫码过程中请勿刷新、关闭本页面,否则会导致文档资源下载失败

    • 支付成功后,可再次使用当前微信或支付宝扫码免费下载本资源,无需再次付费

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

    《对象基本概念》PPT课件.ppt

    面向对象技术引论,陈 苗,第二章 面向对象的基本知识,主要内容:,与面向对象有关的概念、名词、术语;,面向对象的特征与要素;,2.1 面向对象的基本概念,2.1.1 什么叫面向对象(Object -Orient ),面向对象方法 原理与实践一书关于面向对象这一术语的解释是: “ 面向对象系统是基于对象的、基于类的,支持类和超类间的继承,并且允许对象发送消息给它们自己。”,应该说,上面的解释具有片面性,下面我们从面向对象的含义、本质等方面来探讨这一问题。,1. 面向对象的基本含义,把软件系统看成是一系列离散对象的集合,并强调刻画对象性质的数据及行为的紧密联系,也即应用封装技术来实现这种联系。,在强调实体(事物)封装性的同时,也应充分考虑存在于同一系统中的各个实体之间的有机联系,也即实体关系。,泛化(generalization)关系是一种“特殊/一般”关系,也即特殊事物和一般事物之间的关系。(例),UML提出四种关系依赖、关联、泛化、实现。,依赖(dependency)关系是两个事物间的语义关系,其中一个事物(规格说明)发生变化会影响另一事物。(例,订单和产品之间的关系),关联(association)是一种结构关系,更多地涉及到事物之间的相互联系、相互作用和引用,具有动态特征。 (例),实现(realization)是类元之间的语义关系。,2. 面向对象的本质*,面向对象的本质可以用一句话来概括:确定动作的主体在先,而执行动作在后,这种模式称为“主体动作”模式。,例:学籍管理系统是由学生、教师、教辅人员、课程、各 种规章制度等多个彼此独立而又相互关联的对象集合而成; 学生是一个抽象实体,它可以具体化为:本科生、专科生、 研究生等等,教师、教辅人员则可以抽象为一个更具一般 化的实体“教职工”,这些都是泛化关系。学生、教师、 课程等实体之间则存在着各种关联,例如学生选择课程, 老师讲授课程等等。,例如:数据是对象的主体,因此分析一个实体总是先分析 其数据性质,也即实体的属性,然后才去考虑对数据施加 哪些操作。,“主体动作”模式 的特点:,将对象作为软件系统结构的基本组成单元,以主体数据为中心,对数据和作用在数据上的操作进行封装,以标准接口规范对外提供服务。,反映面向对象本质的“主体动作模式是与人们对客观世界的认识规律相符合的,从而使得软件工程如此广泛的领域在对象技术上建立了共同的基础。”,3. 面向对象的基本思想,(1)传统的软件系统构成及其存在的问题,传统的软件系统是由一个函数或过程的集合和一个被这些函数或过程所操纵的数据集组成的。其静态结构模型如下图所示:,3. 面向对象的基本思想(续),从该模型可以看出,在模型所抽象的系统运行时,发生以下动作: (1)f1读取数据A并将处理结果写到数据B中。 (2)f2读取数据A并将处理结果写到数据C中。,问题:在这种将事物的数据与行为分离的模式下,当数据结构的一部分改变时,我们必须做什么?,问题的答案:必须检查每一个函数,以确定数据结构的变化是否使函数受到干扰。,3. 面向对象的基本思想(续),存在的问题,(1)为了新结构而改动的函数可能对系统的其他部分有副作用。 (2)维护的代价非常高。,(2)面向对象模型鸡蛋模型,函数(事物的行为)和它们所需存取的数据(事物的属性)被封装在称为对象的包内(信息隐蔽),其它对象的函数不能直接访问这些数据。对应的模型如下图所示:,3. 面向对象的基本思想(续),函数(事物的行为)和它们所需存取的数据(事物的属性)被封装在称为对象的包内(信息隐蔽),其它对象的函数不能直接访问这些数据。对应的模型如下图所示:,可以将对象看成是鸡蛋:蛋黄是数据结构,蛋清由访问数据的函数组成,蛋壳代表明显可见的操作标记。,蛋壳作为接口,隐蔽了函数和数据结构的实现。,如果数据结构改变了,维护人员只需检查对应的鸡蛋的蛋清,维护被限制在局部范围。,如果实现变化了,其他对象不会受到影响。,3. 面向对象的基本思想(续),面向对象的基本思想就是封装:数据和处理过程结合在一起并隐蔽在接口后面。,在封装的情况下,必须允许对象之间传递消息,获得对方的服务,以获取被封装的数据。模型的改进如又图所示:,2.1.2 对象和类,主要讨论对象和类的定义、对象的种类、对象的主要性质等,侧重于概念和术语。,1什么是对象,“对象是现实世界中一个实际存在的事物,它可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划)”。,任何一个对象都具有自己的静态特征和动态特征。,静态特征是指可以用数据来描述的事物的特性。 (例略),动态特征即对象所表现的行为或对象所具有的功能。,2对象的定义,我们从现实世界、数据世界以及系统观点等三个不同的角度,给出对象的定义。,1)从现实世界的角度看对象,在现实世界中,对象定义为:问题的概念和抽象的或具有明确边界和意义的事物。,例如,课程管理是问题域的问题,而课程就是其中的概念(事物),也就是对象。,2)从数据世界的角度看对象,2对象的定义 (续),在数据世界中,对象定义为:一组数据以及施加于这组数据上的一组操作。,数据刻划对象的特性或属性,操作刻划对象的行为或功能;对象的属性可以是简单数据类型、结构数据类型也可以是复杂数据类型(例如另一个对象) 。,【例】窗口上的一个文本框对象包含有外部名(Name)、 字体(Font)、数据源(Data Source)、前景颜色 (Fore Color) 、高度和宽度(Height、Width)等多种 属性,同时还带有单击左键(Click)、双击左键 (Double Click)、修改文本(Chang)等多个操作。,3)从系统的观点看对象,2对象的定义 (续),从系统的观点出发,我们可以给对象作如下定义:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位(单元),一个对象是由一组属性和对这组属性进行操作的一组服务构成的。,属性是用来描述对象静态特征的一个数据项,也叫对象特性;,服务是用来描述对象动态特征(行为)的一个操作;,3对象类,对象类是在对具有共性的一些对象的认识和抽象描述的基础上产生的一个抽象结构,简称为类。,1)抽象,把具有共性的一些事物归为一类,这是认识客观世界和分析问题的一般方法。这里的共性是指事物的本质特征,抽象的基本特征就是抓住事物的本质,忽略一些无关紧要的细节 。,【例1】 从各种自行车到自行车类的抽象过程分析:,(1)找出各种自行车;,(2)找出这些自行车的共同属性;,(3)找出这些自行车的共同行为;,【例2】 从各种窗口到窗口类的抽象过程分析:,2)类的定义,注意:抽象是分类的依据,也即分类一定要满足“一般化”这一基本要求。,所谓“一般化”是对相同或相似事物的性质进行高度概括所获取的共性,这些共性反过来能适应被概括的所有对象。,定义1 一组具有相同性质(属性和操作)的对象的抽象。,定义2 类是对一组具有相同属性、操作、关系和语义的对象的描述。,定义3 具有相同属性和容许操作的一组对象的一般描述称为类。,注意:,类的全称是对象类;,被归类的一组对象必须具有一般特性、行为,一般关系和一般语义。,对一般关系的解释:例如, 对象之间的相互联系和相互作用(链),在类之间被抽象为关联。,对一般语义的解释:同一个类的不同对象执行相同的操作,其结果应该是一样的。例如各种窗口执行“移动”操作,都导致自身的移动。,3)类的基本特征,包括名称、属性、操作、职责等。,名称(name):每个类都必须有一个有别于其他类的名称,名称是一个字符串。,单独的名称称为简单名,用类所在的包的名称作为前缀的类名称为路径名。,属性(attribute):是已被命名的类的特性,它描述了该特性的实例可以取值的范围。类可以有n个属性(n=0),这些特性为类的所有对象所共有。(例略),可以说一个属性是对类的(一个)对象可能包含的一种数据或状态的抽象。在一个给定的时刻,类的一个对象将对该类的每一个属性具有特定的值。,操作(operation):是一个服务的实现,该服务可以由类的任何对象请求,以影响其行为。一个类可以有n个操作(n=0)。操作可以由类的所有对象共享,因此操作是对象行为的抽象。调用对象的操作经常会改变该对象的属性值(数据)或状态。,职责(responsibility):是类的契约或责任。当创建(定义)一个类时,就声明了这个类的所有对象具有相同种类的状态(抽象为属性)和相同种类的行为(抽象为操作)。,4)类和对象的关系,形象地说,类与对象的关系如同一个模具与用这个模具铸造出来的铸件之间的关系。,在较高的抽象层次上,这些属性和操作正是要完成类的职责的特征。,例如:类Wall负责了解墙的重量、高度、长度和厚度, 该类所声明的weight、high、length、width等属性和 display操作共同完成该类的这一职责。,类和对象的关系概括起来有以下三点:,(1)每个对象都是其所属类的一个实例(instance),称为对象实例。,(2)类是对象实例的可能的无限集合,同一类中的所有对象都具有相同的属性描述和操作集、不同的对象标识符。,(3)在面向对象程序设计语言中,通常用类作为样板来定义对象。,5)子类,【例】C+用Class类型来描述类,用所定义的类类型声明 一个对象,并利用构造函数这一特殊成员函数对该对象进 行初始化(产生一个对象实例)。,其基本性质被另一个类所表征(定义或描述)的类称为子类。例如本科生类的基本性质被学生类所表征。,一个类A是另一个类B的子类,当且仅当满足以下两个条件:,(1)类B的所有性质包含在类A中;,(2)类A可以具有类B所没有的性质。,6)一般类和特殊类,应用概括的方法,我们可以从一组相关的类中进一步抽取其共性舍弃其个性,就可以从特殊到一般(自底向上),得到一个一般类(基类、抽象类、超类)。,例如从学校中的教师、教辅人员、后勤人员这些类中抽取 姓名、性别、单位、工资等共同的属性就得到一个一般类 员工类。,应用具体化的方法,在一个类中加入一些特殊性质就可以得到一个特殊类(派生类、子类)。,例如在员工类中加入授课情况等特殊的属性就形成一个相 对于员工类的特殊类教师类;加入工种、技术级别等 特殊属性后则形成相对于员工类的另一个特殊类后勤 人员。,一般类和特殊类的关系如下图所示:,(1)一般类和特殊类的定义,如果类A具有类B的全部属性和服务,而且具有自己特有的某些属性和服务,则类A叫做类B的特殊类,类B叫做的类A的一般类。 两者之间的关系称为“泛化”。,可以看出一般类具有父类的特征,而特殊类具有子类的特征,特殊类可以共享一般类的性质。,类的“泛化”结构提供了一种继承机制,使得我们可以对系统中具有共同性质的一些类进行再抽象,构造出一般类并实现其代码,然后让相应的各个特殊类直接共享一般类的基本代码,这不失为一种快速构造系统的好办法。,(2)类的“泛化”关系的用途,4对象的相互作用,当系统运行时,系统中的对象必定会呈现出动态特征,其表现形式为:对象自身状态的转换和对象间的相互作用。,对象的相互作用是对象动态特征的一种自然表现。,例如,A对象向B对象传送一个消息,这一消息附带的一 个事件可能导致B对象被激发或B对象由于执行了消息传 送方所要求的操作, 改变了自身的某些属性值,从而由 一个状态转入另一个状态 (对象的状态是由某些内部属 性值构成的)。同时,A对象由于获得B对象所提供的服 务,不但运行得以维持,而且其状态亦可能发生变化。,5支持对象相互作用的消息机制,在面向对象系统中,对象之间的相互作用是通过消息传送来进行的。,从对象获得数据只有一种方法:给对象发送一条消息。,消息决定了要发生什么,不同的接受对象利用不同的方法来解释消息。,1) 消息(Message)的定义,在面向对象语境中,消息定义为向对象发出的服务请求(要求对象执行它其中的一个操作的请求)。,提供服务的对象标识;,服务标识;,输入信息和回答信息(服务参数)。,消息应该含有以下信息:,消息的接收者是提供服务的对象,在设计该对象时,它对外提供的每个服务应规定消息的格式消息协议。,消息通常由接收对象(提供服务的对象标识)、调用操作名(服务标识)以及必要的参数等三部分组成。,2) 消息的格式 和消息协议,一个对象能够正确响应的消息的集合称为该对象的(消息)协议。消息的名字叫做它的选择符。,2) 消息的格式 和消息协议(续),消息的发送者是要求服务的对象或其它系统成分,在每个发送点上,发送者需要按服务方规定的消息协议写出一个完整的消息。,如果把类看作是组件,我们常把协议分成可能重叠的消息集,称为类(组件)的接口。,

    注意事项

    本文(《对象基本概念》PPT课件.ppt)为本站会员(jun****875)主动上传,人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知人人文库网(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    网站客服QQ:2881952447     

    copyright@ 2020-2024  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

    备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

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