第1章 面向对象概述

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象基本概念


利用永久对象的概念,无须额外编制任何程序, 只要在程序中对某个对象声明为永久对象,则 系统会自动完成它的存储、转换、恢复等一系 列问题,对象和数据库之间直接交互,对象从 库中提取出来放到内存,和原来的一摸一样, 有相同的属性和操作,能和其他对象直接交互, 如果有多个对象,它们之间的继承和关联关系 也和原来一样,能够使对象在不同的程序之间 实现共享,这将大大减轻编程的工作量。 永久对象的实现要求有较高的技术支持,其中 重要的技术如存储和管理永久对象的对象管理 系统,同时还需解决对象的共享、并发、一致 性等问题。
第1章 面向对象概述
学习内容
面向对象基本概念 面向对象的三大要素

面向对象基本概念
1. 什么叫面向对象


面向对象技术是一种以对象为基础,以事件或 消息来驱动对象执行处理的程序设计技术。 从程序设计方法上来讲,它是一种自下而上的 程序设计方法,它不像面向过程程序设计那样 一开始就需要使用一个主函数来概括出整个程 序,面向对象程序设计往往从问题的一部分着 手,一点一点地构建出整个程序。
面向对象基本概念
7.主动对象


主动对象就是设计用来刻画对象的这种行为,主动对 象的行为被设计成一个任务,用来描述业务领域识别 的任务和分析时识别的任务。 主动对象封装了一组属性和操作,但其中至少有一个 操作,不需要接收参数,就可以主动执行,并能完成 相应的任务。实现时要求能并发,并能主动执行,通 常是用进程或线程来实现的。当然,主动对象的一些 操作,也可以是在接收消息之后才执行的一般操作。 主动对象的引入,为描述一个多任务系统提供了依据。 这个依据将成为编程人员编程的主要依据。
面向对象的三大要素
3. 多态


如果在父类定义的属性和操作被子类继承以后, 表现出不同的属性和操作,这种现象叫作多态。 多态的基本表现是:属性名或操作名在子类和父 类中相同,但语义不同。 多态的实现主要靠以下几个机制: (1)重载:即在子类中对继承来的属性或操作进 行重新定义(俗称改写),有很多开发语言支持 这一特性。 (2)动态绑定:即消息的接收对象根据接收的消 息,动态地确定调用自己的那个操作。
面向对象的三大要素


信息隐藏:由于采用了封装,任何属性变量都 隐藏在类中,没有了全局变量等概念,使用对 象的属性是有条件的,只有对象本身才能使用 它的属性信息。要保证对象对外界请求作出正 确的反应,对象必须了解自身的结构,在需要 时,对象可以通过它的操作来访问和支配和它 在一起的对象属性。因此,对象必须封装使自 己正常运转的信息,这是一个基本要求。 局部开放:对象还必须把最低能使用它的信息 公开出去,才能保证其他对象知道并访问自己, 而不要把其他对象不感兴趣的信息也公开出去, 实现对象这个功能的元素就是对象的接口。
面向对象基本概念

与主动对象相对的还有一个概念就是被动对象。 它是指对象的每个操作都是在消息驱动下被动 地执行。向对象发一个消息,它就响应这个消 息,执行被请求的服务,否则,它的操作就不 能被执行,通常是用函数、例程或过程来实现。
面向对象的三大要素
1. 封装 封装(Encapsulation)是把对象的属性、操作 结合在一起,构成一个独立的对象,这样可以 更有效地使用对象。 一旦封装,内部信息对外界是隐藏的,也就像 一个四周密封的房子一样,不允许直接对对象 的属性进行操作,要想操作,只能通过局部接 口(相当于房子的大门)。外部只能看到对象 操作的反应,而不知道对象是如何做出这一反 应的。所以,封装包含两方面的含义,一个是 信息隐藏,另一个是局部开放,使外界可以使 用该对象,而不必关心其内部机制。
面向对象基本概念
4. 消息


在系统中对象只有对外提供服务,才能发挥自 己的作用,当系统中的其他对象请求这个对象 提供服务时,该对象就给予响应,并完成指定 的操作。在这个过程中,其他对象要求提供服 务这个信息就叫做消息。 所谓消息(Message)是指描述事件发生的信息, 是对象间相互联系和相互作用的方式。为了完 成整个系统的功能,对象之间只有不断地发出 消息进行通信,才能相互配合完成系统的职责。
面向对象基本概念


如果对象间是一种比较松散的关系,整体对象和部分 对象可以独立地创建,并在整体对象中设臵一个部分 对象的属性,它可以是部分对象的标识,也可以是指 向部分对象的指针。同时,部分对象也可以属于多个 整体对象,其生命周期与整体对象不同,这种对象间 的关系叫(共享)聚合。 如果部分对象作为整体对象以部分对象类型定义的属 性而存在,也就是说,对象中存在对象,这个部分对 象只能属于这个整体对象,并且和整体对象具有相同 的生命周期,这种关系被叫作组合。
面向对象基本概念
5. 结构 在现实世界里,任何对象都不是孤立的, 对象之间都是存在着一定的关系。 一般情况下,有以下这几种关:对象间 的分类关系,对象间的组成关系,对象 属性之间的静态关系,对象行为之间的 动态关系。
面向对象基本概念


(1)对象间的分类关系:如果一个结构是一 组具有一般-特殊关系的类组成,类为结构的节 点,由继承关系构成结构的连接骨架。则由单 继承形成的结构叫层次结构,由多继承关系形 成的结构称作网络结构。 (2)对象间的组成关系:在现实世界的很多 对象,都存在着由其他小对象组成这个事实, 在面向对象世界里,这种关系仍然成立,人们 称之为整体-部分结构。主要有两种整体-部分 结构:聚合和组合
面向对象基本概念
6. 永久对象

永久对象指生存周期可以超越程序的执行时间 而长期存在的对象,又叫持久对象。 一般情况下,对象的生命周期不能超过程序的 运行时间,一旦程序运行停止,所有对象都会 立即消失,下次运行程序,再生成对象;或者 在上次结束时,把所有的对象都用文件或数据 库保存起来,下次运行再恢复出来,虽然从表 面看好像延长了对象的生命周期,但存在以下 缺陷:首先要编制对象与文件或数据库之间要 进行格式转换操作,其次是对象有一段时间是 以普通数据的身份而存在的(不是面向对象 的)。



类(Class)是一组具有相同数据结构和相同操作的对象 的集合。 类的定义包括一组数据属性和在数据上的一组合法操作。 类定义可以视为一个具有类似特性与共同行为的对象的 模板,可用来产生对象。 类是对象的抽象,是反映了该类所有对象的属性、操作 的抽象的定义;所有对象在这个类定义的集合中,每一 个对象只是类的实例。
面向对象的三大要素
(3)定义接口类:另一种实现多态的方式 是定义一个特殊的抽象类(缺乏完整定义的类) 接口类,它只声明一些操作标记,告诉其他对 象如何触发该行为的细节,如名称,参数、返 回值,再创建接口类多个子类,在每个子类中 实现接口类定义的所有操作,从实现相同的接 口类这个角度来看,表现出相同的一组接口由 不同的子类去实现这样的多态。
面向对象基本概念



消息一般应包含以下信息:提供服务的对象标 识、服务标识、输入参数、响应信息。 消息的接受者提供服务,它必须能够理解其他 对象发出的消息,也就是说消息必须采用规定 的消息协议格式。 在具体的语言实现上,消息就是被调用的函数、 子程序。对象和对象之间这种动态的联系,叫 做消息链接,消息链接是有方向性的。
面向对象基本概念


(3)对象属性间的静态关系:如果对象之间 的关系是永久的、固定的,一个对象了解并知 道另一个对象,并可以通过对象的属性表达出 这种关系,但这两个对象间又不具备整体和部 分的语义。这种关系叫做关联,有时又被叫作 实例连接(用来与消息链接区别)关系。 (4)对象行为间的动态关系:如果对象之间 的关系是动态的、可变的,并且是暂时性的, 这种关系叫做消息连接关系。
小结




对象是描述客观存在的事物,类是同类对象的抽象表 达,封装是把对象的属性和操作结合起来,形成一个 独立的单位,继承是讨论父类和子类之间的共性问题, 消息是一个对象向另外一个对象发出的服务请求。 对象间存在着一般和特殊关系、整体和部分关系、永 久关联关系、暂时依赖关系。 多态是指在一般-特殊关系中,虽然一般类的属性或方 法与特殊类的属性或方法名称一样,但语义却不一样。 永久对象是指生命周期超过程序执行时间的对象。 主动对象是指不需要接收消息就可以主动执行操作的 对象
面向对象基本概念
2. 对象



定义:一个物理实体,如桌子、书等; 一个特定的实体,如我的桌子等; 一种无形的事物,如经济效益、交易等。 每个对象可用它本身的一组属性和它可 以执行的一组操作来定义 。 软件领域的对象是真实世界对象的一个映射, 它由名称、属性、操作构成。
面向对象基本概念
3. 类
习题

1. 举例说明属性、操作、接口之间的关系。 2. 试对对象间关系的紧密程度从高到低排个序。 3. 试从面向对象的概念中找出多个具有辩证关系的两 个相反的概念如:主动对象和被动对象,永久连接和 暂时连接…
来自百度文库
面向对象的三大要素

保证信息隐藏和局部开放之后也并不能确定对 象就可以正常工作了,对象能否正常工作,还 与它当时所处的状态有关,所以对象的状态信 息也必须封装进去。 封装保证了对象的数据不会被其他对象破坏。

面向对象的三大要素
2. 继承




继承(Inheritance)是一种连接类与类之间的层次模型。 继承是指特殊类的对象拥有其一般类的属性和行为。 继承意味着“自动地拥有”,即在特殊类中不必重新 对已在一般类中所定义过的属性和行为进行定义,而 是特殊类自动地、隐含地拥有其一般类的属性和行为。 继承对类的重用性,提供了一种明确表述共性的方法。 即一个特殊类既有自己定义的属性和行为,又有继承 下来的属性和行为。 一个类可以是多个父类的子类,它从多个父类中继承 了属性和操作,这叫做多继承 。
相关文档
最新文档