




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象技术2010下1内容提要面向对象的基本概念面向对象的程序设计面向对象的开发技术面向对象的分析与设计方法和构件技术。2知识要点面向对象的基本概念(对象、类、消息和消息传递、继承、多态和动态绑定)面向对象程序设计范型的概念,面向对象程序设计的特点,程序设计语言的OOP机制,类库的概念及其作用。面向对象分析与设计和面向对象的测试的基本概念。主流的面向对象分析与设计方法和UML基础知识。应用系统、应用系统族的基本概念,构件、构件系统的基本概念。3难 点类、对象、继承、多态和封装概念、含义程序设计语言的OOP机制OOA、OOD、OOP的含义与应用UML的应用4重 点类、对象、继承、多态和封装概念
2、、含义程序设计语言的OOP机制OOA、OOD、OOP的含义与应用UML的应用5面向对象的基本概念(1)对象 对象是基本的运行时的实体,包括数据和用于数据的操作(行为),所以一个对象把属性和行为封装为一个整体。一个对象通常可由对象名、属性和操作3部分组。消息 对象之间进行通信的一种构造叫做消息。6面向对象的基本概念(2)类 类是在对象之上的抽象,对象是类的具体化,是类的实例(instance)。继承 继承是父类和子类之间共享数据和方法的机制。一个父类可以有多个子类,这些子类都是父类的特例,父类描述了这些子类的公共属性和操作。7面向对象的基本概念(3)多态 不同的对象收到同一消息可以产生完全不同的
3、结果,这一现象叫做多态。在使用多态时,实现的细节由接收对象自行决定,这样,同一消息就可以调用不同的方法。8面向对象的基本概念(4)动态绑定 绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设计语言中,绑定是在编译时进行的,叫做静态绑定。动态绑定则是在运行时进行的,动态绑定是和类的继承以及多态相联系的。9面向对象的优点1) 解决了产品质量和生产率之间的权衡2) 使得系统具有很高的灵活性和易扩充性3) 是一个以管理复杂性并增强伸缩性的工具4) 比自顶向下进行功能分解的分析及设计更自然合理5) 从概念模型化到分析、设计、编码可以实现无缝传递6) 通过封装进行的信息隐蔽有助于
4、建立安全的系统10程序设计语言中的OOP机制(1)类 类具有实例化功能,包括实例生成和实例消除,类及其实例具有下面特征: 1) 同一个类的不同实例具有相同的数据结构,承 受的是同一方法集合所定义的操作,因而具有 规律相同的行为 2) 同一个类的不同实例可以持有不同的值,因而 可以具有不同的状态 3) 实例的初始状态(初值)可以在实例化时确定11程序设计语言中的OOP机制(2)继承和类层次结构 在一个面向对象系统中,子类与父类之间的继承关系构成了这个系统的类层次结构,可以用树(对应于单继承)或格(对应于多继承)这样的图来描述。12程序设计语言中的OOP机制(3)对象、消息传递和方法1) 对象是类
5、的实例。对象与一般数据类型存在本质区别:对象之间通过消息传递方式等待通信。2) OOP使得对象具有交互能力的主要模型就是消息传递模型。对象被看成用传递消息的方式互相联系的通信实体,它们既可以接收、也可以拒绝外界发来的消息。3) 对于一个类来说,它关于方法界面的定义规定了实例的消息传递协议,而它本身则决定了消息传递的合法范围。13程序设计语言中的OOP机制(4)对象自身引用 对象自身引用的值和类型分别扮演了两种意义的角色:对象自身引用的值使得方法体中引用的成员名与特定的对象相关;对象自身引用的类型则决定了方法体被实际共享的范围。14程序设计语言中的OOP机制(5)重置 重置(overriding
6、)的基本思想是,通过一种动态绑定机制的支持,使得子类在继承父类界面定义的前提下,用适合于自己要求的实现去置换父类中的相应实现。15程序设计语言中的OOP机制(6)类属类 类属是程序设计语言中普遍注重的一种参数多态机制。类属类可以看成是类的模板。一个类属类是关于一组类的一个特性抽象,它强调的是这些类的成员特征中与具体类型无关的那些部分,而与具体类型相关性的那些部分则用变元来表示。16面向对象分析与设计方法(1)Coad和Yourdon的OOA和OOD方法1) OOA (object-oriented analysis) 由下列5个层次和5个活动组成。 1) 5个层次:主题层、对象类层、结构层、属
7、性 层、服务层。 2) 5个活动:标识对象类、标识结构、定义主题 、定义属性、定义服务。 在这种方法中定义了两种对象类之间的结构,一种称为分类结构,一种称为组装结构。分类结构就是一般与特殊关系,是一种“is a“关系。组装结构则反映了对象之间的整体与部分关系,它实际上是一种“has a“的关系。17面向对象分析与设计方法(1)Coad和Yourdon的OOA和OOD方法2) OOD(object-oriented design) OOD模型由4个活动组成(设计问题域部件、设计人机交互部件、设计任务管理部件、设计数据管理部件)18面向对象分析与设计方法(2)Booch的OOD方法 Booch认为
8、软件开发是一个螺旋上升的过程,在螺旋上升的每个周期中有以下步骤: 1) 标识类和对象; 2) 确定它们的含义; 3) 标识它们之间的关系; 4) 说明每一个类的界面和实现。 除了类图、对象图、模块图、进程图外,Booch的OOD中还使用了两种动态描述图,一种是刻画特定类实例的状态转换图,另一种是描述对象间事件变化的时序图。19面向对象分析与设计方法(3)OMT (Object Modeling Technique)方法 OMT定义了3种模型(对象模型、动态模型和功能模型)和4个步骤(分析、系统设计、对象设计和实现)20面向对象分析与设计方法(3)OMT 三种模型(对象模型、动态模型和功能模型)
9、1) 对象模型对象模型描述系统中对象的静态结 构、对象之间的关系、属性、操作。OMT的对 象模型中除了对象、类、继承外,对象模型还 有一些其他的概念。如: 链和关联、泛化、聚集、模块。21面向对象分析与设计方法(3)OMT 三种模型(对象模型、动态模型和功能模型)2) 动态模型动态模型描述与时间和操作顺序有关的系统特征(激发事件、事件序列、确定事件先后关系以及事件和状态的组织) 3) 功能模型功能模型描述与值的变换有关的系统特征(功能、映射、约束和函数依赖)。功能 模型用数据流图来表示。22面向对象分析与设计方法(3)OMT 三种模型之间具有下述关系: (1) 与功能模型的关系:对象模型展示了
10、功能模型中的动作者、数据存储和流的结构,动态模型展示了执行加工的顺序。 (2) 与对象模型的关系:功能模型展示了类上的操作和每个操作的变量,因此它也表示了类之间的“供应者一客户”关系;动态模型展示了每个对象的状态以及它接收事件和改变状态时所执行的操作。 (3) 与动态模型的关系:功能模型展示了动态模型中未定义的不可分解的动作和活动的定义,对象模型展示了是谁改变了状态和承受了操作。23面向对象分析与设计方法(3)OMT的步骤(1) 分析OMT方法的第一步,其目的是建立可理解的现 实世界模型。 (2) 系统设计确定整个系统的体系结构,形成求解问题 和建立解答的高层次策略。 (3) 对象设计建立基于
11、分析模型的设计模型,并考虑实 现的细节,设计人员根据系统设计期间建立的策略把 实现细节加入到设计模型中。 (4) 实现将对象设计阶段开发的对象类及其关系转换成 特定的程序设计语言、数据库或硬件的实现。24UML概述UML 统一建模语言(unified modeling language,UML)是面向对象软件的标准化建模语言。UML由3个要素构成:UML的基本构造块、支配这些构造块如何放置在一起的规则和运用于整个语言的一些公共机制。25UML的3种基本构造块(1)事物(UML中有4种事物) 1) 结构事物是UML模型中的名词。通常是模型的静态部分,描述概念或物理元素。包括类、接口、协作、用例、
12、主动类、构件和节点。 2) 行为事物是UML模型的动态部分,是模型中的动词,描述了跨越时间和空间的行为。共有两类主要的行为事物:交互和状态机。 3) 分组事物是UML模型的组织部分,是一些由模型分解成的“盒子”。最主要的分组事物是包。 4) 注释事物是UML模型的解释部分,用来描述、说明和标注模型的任何元素。注解是一种主要的注释事物。26UML的3种基本构造块(2)关系(UML中有4种关系)1) 依赖是两个事物间的语义关系,其中一个事物(独立 事物)发生变化会影响另一个事物(依赖事物)的语义。 2) 关联是一种结构关系,它描述了一组链,链是对象之 间的连接。聚集是一种特殊类型的关联。 3) 泛
13、化是一种特殊/一般关系,特殊元素(子元素)的对象 可替代一般元素(父元素)的对象。 4) 实现是类元之间的语义关系,其中一个类元指定了由 另一个类元保证执行的契约。27UML的3种基本构造块(3)图(UML中有9种图) 1) 类图展现了一组对象、接口、协作和它们之间的关系。类图给出系统的静态设计视图, 包含类的类图给出了系统的静态进程视图。类图用于对系统的静态设计视图建模。2) 对象图展现了一组对象以及它们之间的关系。对象图描述了在类图中所建立的事物的实例的静态快照。对象图一般包括对象和链。28UML的3种基本构造块(3)图(UML中有9种图) 3) 用例图展现了一组用例、参与者以及它们之间的
14、关系 用例图用于对系统的静态用例视图进行建模。 4) 交互图序列图和协作图均被称为交互图,它们用于对系统的动态方面进行建模。交互图用于对一个系统的动态方面建模。交互图一般包含对象、链和消息。序列图:描述了以时间顺序组织的对象之间交互活动。序列图有两个不同呈协作图的特征:序列图有对象生命线和控制焦点。协作图:强调收发消息的对象的结构组织。协作图强调参加交互的对象的组织。协作图有两个不同于序列图的特性:协作图有路径和顺序号。29UML的3种基本构造块(3)图(UML中有9种图) 5) 状态图展现了一个状态机,它由状态、转换、事件和活动组成。状态图并且关注系统的动态视图。状态图通常包括:简单状态和组
15、合状态、转换(事件和动作)。6) 活动图是一种特殊的状态图,它展现了在系统内从一个活动到另一个活动的流程。活动图专注于系统的动态视图。它对于系统的功能建模特别重要,并强调对象间的控制流程。活动图一般包括:活动状态和动作状态、转换和对象。30UML的3种基本构造块(3)图(UML中有9种图)7) 构件图展现了一组构件之间的组织和依赖。构件图专注于系统的静态实现视图,它与类图相关,通常把构件映射为一个或多个类、接口或协作。8) 部署图部署图展现了运行处理节点以及其中的构件的配置。部署图给出了体系结构的静态实施视图,它与构件图相关,通常一个节点包含一个或多个构件。31设计模式设计模式要素(一般有4个要素) (1) 模式名称:一个助记名,它用一两个词来描述模式的 问题、解决方案和效果。 (2) 问题:描述应该在何时使用模式。 (3) 解决方案:描述设计的组成成分,它们之间的相互关 系及各自的职责和协作方式。 (4) 效果:描述模式应用的效果及使用模式应权衡的问题32设计模式设计模式分类(创建型模式,结构型模式和行为型模式) (1) 创建型设计模式抽象了实例化过程。它们帮助一个 系统独立于如何创建、组合和表示它的那些对象。(2) 结构型设计模式结构型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度企业员工晋升与发展人事合同与劳动合同配套协议
- 二零二五年度土地流转与农业科技创新合作合同
- 2025年度律师起草公司内部管理制度合同起草收费标准合同
- 2025年度培训机构退学退费服务协议范本
- 2025年度代驾行业规范及服务合同范本
- 2025年度业务员提成与市场渠道整合合同
- 2025年度农村土地征收补偿安置与农业科技创新协议
- 2025年度挖掘机股份转让与技术培训服务合同
- 2025年度借车保险责任免除协议书
- 2025年房地产行业发展前景分析:多家房企债务重组取得突破
- GB/T 4851-2014胶粘带持粘性的试验方法
- GB/T 3860-2009文献主题标引规则
- GB/T 34376-2017数控板料折弯机技术条件
- GB/T 13277.3-2015压缩空气第3部分:湿度测量方法
- 人教版小学精通英语单元五下Unit1整合教案
- (课件)港口安全知识培训讲解
- 2022年企业安全生产知识培训讲座PPT课件(带内容)
- 产品设计思维课件
- 电子直线加速器的工作原理专题培训课件
- 2023年孝感市孝南区全要素自然资源有限公司招聘笔试题库及答案解析
- 临终关怀成品课件
评论
0/150
提交评论