面向对象技术概述.ppt_第1页
面向对象技术概述.ppt_第2页
面向对象技术概述.ppt_第3页
面向对象技术概述.ppt_第4页
面向对象技术概述.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象技术及UML教程 第1章 面向对象技术概述 第1章 面向对象技术概述 面向对象(Object-Oriented)不仅是一些具体的软 件开发技术与策略,而是一整套关于如何看待软件 系统与现实世界的关系,用什么观点来研究问题并 进行求解,以及如何进行系统构造的软件方法学。 本章主要先来了解一下面向对象技术的基本知识和 基本概念,为后面介绍面向对象分析和设计建模语 言UML做好铺垫。面向对象程序设计方法已经被大 家广泛接受,成为当前最流行的程序设计方法。 第1章 面向对象技术概述 196070年代 COBOL(商用语言,银行)、FORTRAN(工程计算 )、C(系统开发) 结构化分析和设计技术 1980年90年代初期 Smalltalk、Ada、C+、Visual Basic 早期面向对象生成(代码)方法 90年代中晚期 Java UML Unified Process 1.1 面向对象方法学 什么是面向对象呢?这里从二个层次来介绍这个概 念:第一个层次就是面向对象思想;第二个层次是 面向对象程序设计语言。 严格意义上说,面向对象思想与程序设计无关,它 是人们对自然世界的一种认识,把世界中的所有事 物都看作是对象,每个对象既是独立的,同时这些 对象又是相互联系的。 1.1 面向对象方法学 对象(韦氏大词典) (1)某种可为人感知的事物物理对象 (2)思维,感觉或动作所能作用的物质或精神体。 概念性对象 提问:以“仓库管理系统”为例,哪些是物理对象?哪 些是概念性对象? 1.1 面向对象方法学 u到仓库来领取或外借物料的员工 u负责仓库的仓库管理人员 u管理仓库信息的电脑 u领取或外借仓库中的物料 u存放物料的货架 u仓库本身这一建筑物 u领取或外借仓库物料的员工所在部门 u员工的工号 u仓库中存放的物料编号 1.1 面向对象方法学 面向对象与面向过程的区别 u使用主函数来概括整个程序需要做的事,主函数由 一系列子函数所组成。由预定的顺序进行执行,以 功能为中心 自上而下 u从问题的一部分着手,一点一点地构建出整个程序 。由事件进行驱动(可以利用不断成熟的各种框架) ,以数据为中心 自下而上 1.1 面向对象方法学 仓库管理系统 面向过程: 主函数细化实现确定调用流程 面向对象:选定一个对象(领取仓库物品的员工) 了解对象属性确定对象做的操作形成一 个整体(员工类)共享数据和操作派生其 它类 1.1 面向对象方法学 把这种思想应用到软件开发上,开发人员可以把需 要解决的问题看成是多个独立的,同时又相互联系 的对象组成的一个系统,这样有助于开发人员更深 入地理解问题本身。 什么是面向对象程序设计语言呢?主要看这个语言 定义的类型是否都支持对象的声明,以及这个语言 对对象的封装、继承和多态的支持程度,不同的语 言面向对象的程度不同 。 1.1 面向对象方法学 程序设计的目的是设计出可以使用的软件系统。 为了设计出高质量的软件系统就需要研究程序设 计中涉及的基本概念、描述工具和所采用的方法 。至今为止,常见的有结构化程序设计方法和面 向对象程序设计方法。 1.1.1 面向对象方法学概述 1.1 面向对象方法学 结构化程序设计方法主要特点是:自顶向下、逐步 求精;模块化;语句结构化。简单地说,利用结构 化程序设计方法实现程序设计需要经过两个基本过 程:分解和组装。 1.1 面向对象方法学 稳定性较高,需求的较小改变不会影响软件的 结构 开发的系统更易于理解, 贴近现实世界(功能为 基础PK对象为基础) 可靠性高 复用 OO方法按照问题域分解,能够更直接地描述现 实世界 各个开发阶段之间过渡平滑 OOA与OOD阶段无 鸿沟 面向对象方法学的优点 1.1 面向对象方法学 随着软件规模的进一步增加,结构化的程序设计方 法的弱点也就暴露出来了,结构化程序设计方法分 析问题主要是从计算机实现的角度来考虑问题,面 对复杂问题时,不利于理清问题本身。因此对问题 的抽象程度比较低,程序的重用性和扩展性比较低 。在这种情况下面向对象程序设计方法应运而生。 面向对象程序设计方法包括面向对象分析、面向对 象设计和使用面向对象程序设计语言的实现,还可 以包括面向对象的测试。采用面向对象方法进行分 析时,所分析的问题都使用对象来描述,对象之间 通过消息进行联系。 1.1 面向对象方法学 面向对象程序设计的基本特征包括了抽象、封装 性、继承性和多态性,对象之间是通过消息相互 作用的。 1.1.2 面向对象方法学的基本特征 1.1 面向对象方法学 1.1.2 面向对象方法学的基本特征 1抽象 抽象是解决实际问题经常采用的策略,也是人类 认识世界的本能方式。所谓抽象是指从许多事物 中,舍弃个别的、非本质的属性,抽取出共同的 、本质的属性的过程,它是形成概念的必要手段 。 抽象模型越简单,展示的特点越少,它就越通用 ,也越具有普适性。 1.1 面向对象方法学 数据抽象是一种更高级别的抽象方法。它将现实 世界中存在的事物作为抽象单元,其抽象内容既 包括事物的属性特征,也包括行为特征。数据抽 象是面向对象程序设计所采用的核心方法,通过 数据抽象得到了现实世界的一个一个的事物,这 些事物就是一个一个的对象。 例如现实世界中一个学校有许多学生,在抽象过 程中每个学生可以用学号、姓名、性别、年龄、 家庭住址等信息进行描述;同时每个学生还可以 有注册学籍、选修课程等行为。 1.1 面向对象方法学 实际上,封装并不是新的概念,在日常生活中, 处处可以看到封装机制的应用。例如,一台日常 的电视机 。 2封装(Encapsulation) 封装是指将现实世界中某个事物的属性与行为聚 集在一个逻辑单元内部的机制。封装指将对象属 性和操作结合在一起,构成一个独立的对象。它 的内部信息是隐藏的,不允许外界直接存取对象 的属性,而只能通过指定的接口与对象联系。 1.1 面向对象方法学 在面向对象的程序设计中,封装是指将对象的属 性和行为分别用数据结构和方法描述,并将它们 绑定在一起形成一个可供访问的基本逻辑单元。 用户对数据结构的访问只能通过提供的方法实施 。 封装是实现数据隐藏的有效手段,是一种很好的 管理数据与操作行为的机制,它可以保证数据结 构的安全性,提高了应用系统的可维护性和可移 植性。 1.1 面向对象方法学 封装 就是把对象的属性和方法结合成一个独立的系 统单位,并尽可能隐蔽对象的内部细节。 封装使对象具有2个部分:接口部分和实现部 分 (硬盘) 封装提供2种保护 保护对象 防止直接访问对象内部细节 保护客户 防止对象实现部分的变化影响客户对象 1.1 面向对象方法学 消息传递是对象之间相互联系的惟一途径。发送 者发送消息,接收者接收该消息,并通过调用相 应的方法响应该消息。 3消息(Message) 消息是指对象之间在交互中所传递的通信信息。 简单地说,消息是一个对象要求另一个对象实施 某项操作的请求。在一条消息中,需要包含消息 的接收者和要求接收者执行哪项操作的请求,但 并没有说明应该怎样做。具体的操作过程由接收 者自行决定,这样可以很好地保证系统的封装性 。 1.1 面向对象方法学 消息 是指向对象发出的服务请求 对象直接用消息的方式传递信息,而不是参数 包括:提供服务的对象的标识、服务标识、输 入信息和回答信息等 对象间的消息传递是OO方法的基本原则 消息包括 同步消息,请求者需要等待响应者返回 异步消息,请求者不需要等待响应者返回,发 出消息后可以继续自己的后续工作(和函数调 用有本质区别) 1.1 面向对象方法学 根据继承关系的特性,继承分为两种主要形式: 直接继承和间接继承 单继承和多继承 4继承(Inheritance) 继承是类之间的一种常见关系。这种关系为共享 数据和操作提供了一种良好的机制。通过继承, 一个类的定义可以基于另外一个已经存在的类, 分别将它们称为“子类”和“父类”,“父类”又称为“ 基类”。子类可以继承父类的全部内容,并在此基 础上,对父类表述的内容加以扩展或覆盖。 1.1 面向对象方法学 1.1 面向对象方法学 在面向对象程序设计中,多态性依托于继承性。 利用类的继承机制可以形成一个类的层次结构, 把具有通用功能的消息放在较高层次,而具体的 实现放在较低层次,在这些较低层次上生成的对 象能够对通用消息作出不同的响应。 5多态 当对象收到消息时要予以响应,不同的类对象收 到同一个消息可以产生完全不同的响应效果,这 种现象叫做多态。利用多态机制,用户可以发送 一个通用的消息,而实现的细节由接收对象自行 决定,这样,同一个消息可能会导致调用不同的 方法。 1.1 面向对象方法学 第二,若得到多态性的操作,相应的方法必须同 时包含在父类和子类中,且对应的方法的定义完 全一样,子类中该方法的访问属性不能严于父类 中该方法的访问属性。 要实现多态性,需要具备下面两个条件: 第一,多态性作用于子类,它是依赖于类层次结 构中的一项新功能。在面向对象语言中,需要提 供一个指向父类对象的引用或指针用来指向它的 任何子类对象的能力,这是实现多态性的先决条 件。 1.1 面向对象方法学 覆盖(override)在子类中增加或重新定义所继承的属 性或方法。 public class A String name; public String getValue() return “Value is:” + name; public class B extends A String address; public String getValue () return “Value is:” + address; 1.1 面向对象方法学 n重载(overload)同一个类中有多个同名方法,但它 们在操作数或操作数类型上有区别。系统根据实参引 用不同方法。 1.2 面向对象的类和对象 面向对象最基本的两个概念就是类和对象,类这个 概念也可以从两个层面上来理解,一个是面向对象 方法,一个是面向对象程序设计语言。面向对象方 法中的类可以指一类事物,而对象既可以指一类事 物也可以指某个具体的事物。在这个层面上这两个 概念有一定的区别,但有时也可以通用。 例如:在面向对象程序设计语言层面上来说,可以 把类看成是一个数据类型,例如整型这样的数据类 型,而对象则是该数据类型的一个变量。 1.2 面向对象的类和对象 对象(Object) 有意义的一切事物都是对象 它是系统用来描述客观事物的一个实体,是构成 系统的一个基本单位。 对象包括:属性(静态特征)和方法(动态特征 ) 对象之间对过消息进行通信。 实例(Instance) 它与对象的概念很类似,但其含义更广泛一些。 1.2 面向对象的类和对象 类(Class) 它是具有相同属性和方 法的一组对象的集合 为某类对象提供统一的 描述 类是静态概念,对象是 动态的 对象是类的实例 1.2 面向对象的类和对象 对象是现实世界中事物的抽象,用来描述现实世界 中的每一个事物。例如现实世界中的一个人、一位 教师和一名学生都是一个一个的对象。在面向对象 分析中,开发人员根据需要开发的系统,了解现实 世界中该问题领域中的每个实际的事物,这些事物 被描述成一个个对象。 在系统实现时选择具体的程序设计语言或开发环境 ,每个对象映射成一组状态和多个操作方法。这些 状态描述了每一个对象的具体特征,其他对象可以 请求这个对象操作方法来改变对象的状态。 1.2 面向对象的类和对象 类是指一类事物的集合。它是对现实世界一类事物 抽象的结果,其主要包含对一类事物属性及作用在 这些属性上的行为的描述。 在编写程序时,首先要对描述各类事物的类进行定 义。在实际的程序设计中,可以简单地认为类是一 种类型。在面向对象设计时主要对类的外部接口进 行设计,在类的实现时完成一个类的属性和方法的 描述。这个类的对象可以通过接口与其他对象进行 通信,其他对象只能通过接口来访问该对象,从而 实现了类的信息封装。 1.3 面向对象程序设计语言 面向对象程序设计方法需要能够描述面向对象的程 序设计语言支持。目前,随着面向对象程序设计方 法的日趋成熟,支持面向对象的语言也逐渐丰富起 来。 面向对象的程序设计语言是指提供描述面向对象方 法所涉及的类、对象、继承和多态等基本概念的程 序设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论