面向对象分析与设计复习提要ppt课件

上传人:我*** 文档编号:141435306 上传时间:2020-08-08 格式:PPT 页数:49 大小:925KB
返回 下载 相关 举报
面向对象分析与设计复习提要ppt课件_第1页
第1页 / 共49页
面向对象分析与设计复习提要ppt课件_第2页
第2页 / 共49页
面向对象分析与设计复习提要ppt课件_第3页
第3页 / 共49页
面向对象分析与设计复习提要ppt课件_第4页
第4页 / 共49页
面向对象分析与设计复习提要ppt课件_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《面向对象分析与设计复习提要ppt课件》由会员分享,可在线阅读,更多相关《面向对象分析与设计复习提要ppt课件(49页珍藏版)》请在金锄头文库上搜索。

1、面向对象分析与设计复习提要,软件学院 2012.12.,第一部分 面向对象技术的基本概念和基本方法,1.1 软件开发方法的发展 计算机诞生之后,计算机技术一直处于高速发展状态,计算机科学技术的发展由原来只依靠硬件的发展逐渐变为更多地依靠软件的发展。事实上,软件技术的发展经历了多代历程。 第一代(20世纪50-60年代),是以FORTRAN和ALGOL等编程语言为标志的算法技术时代。 第二代(20世纪70年代末开始到80年代盛行的),以PASCAL、COBOL等编程语言和关系数据库管理系统为标志的结构化系统分析和设计技术。,第三代 (80年代开始至今还盛行的)以Smalltalk、C+等为代表的

2、面向对象软件开发方法(OO)。 (问题1:面向对象软件开发方法发展的动因是什么?) 传统的结构化程序设计以算法为核心,把本来密切相关的数据和对数据的操作分离开来,很难保持数据和操作的一致性,其软件开发方法也不符合人们的自然思维习惯,设计出来的软件系统其解空间与问题空间不一致,致使程序难以理解、修改和扩充,最终导致程序复杂性问题和软件危机。为了超越程序复杂性障碍,克服软件危机,人们提出了面向对象软件开发方法。,(问题2:面向对象软件开发方法的优点有哪些?) 面向对象开发方法一改过去传统的以功能分析和功能分解为基础的面向过程的结构化分析与设计方法,面向对象开发方法模拟人们理解和处理客观世界的方式来

3、分析问题,把系统视为一系列对象的集合,其面向对象的设计又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的概念,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与解空间在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的封装、继承、多态等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服软件危机。因此,它已成为成熟的广为采用的软件开发方法。到20世纪末,面向对象软件工程逐渐发展成熟,特别是统一建模语言(UML)标准的形成和广泛使用,使

4、面向对象软件开发方法已成为软件开发的主流技术。,1.2 面向对象的基本概念 (1)对象:对象是客观实体的抽象表示,是由描述对象的属性数据和对这些数据进行的操作行为两部分组成。 对象的特征: 具有一个状态,由与其相关联的属性值集合所表征。 具有唯一的标识名,可以区别于其他对象。 有一组操作方法,每个操作方法决定对象的一种行为。 对象的状态一般只能被自身的行为所改变。 对象的操作包括自操作(施于自身)和它操作(施于其他对象)。 对象之间以消息传递的方式进行通信。 一个对象的成员仍可以是一个对象。,(2)类 类是具有相同属性和行为的对象集合的抽象描述; 类的内部包括属性和行为两个主要部分。 (3)实

5、例 类是对具有相同属性和行为的一组对象的抽象描述。因此,类可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的实际例子,通常称为实例。,(4)消息 消息就是请求某个对象执行它所包含的某项处理操作的指令信息。实质是对某个类对象的操作函数的调用,即方法的调用 。 例如, student S1; S1.display()是一个消息。 一个消息一般由三部分组成: 接收消息的对象名; 操作函数名; 函数的参数。,(5)面向对象技术的三个基本特征 封装性 继承性 多态性 (6) 封装性 封装就是把对象的属性和行为结合成一个独立的单位,使外界不能直接访问或修改这些数据和代码

6、,外界只能通过对象提供的接口函数来改变或获取对象的属性数据,这就实现了消息隐蔽。对象的这种特性称为封装性。,(7)继承性 如果在一个已定义的类上,增加一些特殊属性或操作,可以形成一个新的类,这个类不仅继承了前一个类的全部特征,而且具有新的特性,因此可看作前一个类的特例,是对前一个类的继承。前一个类称为父类,新产生的类叫做子类。通过继承关系可形成一种类层次结构,叫做继承结构。 (10) 多态性 定义:在类层次结构的不同类中,可用相同的函数名实现功能不 同的操作。,习题 1. 试述面向对象技术的发展动因和优点 。 2. 面向对象设计技术具有哪些特性(或机制)? 3. 解释下列术语的含义:类 对象

7、消息 方法 继承性 多态性 封装性 泛化 特化 抽象 分类,第二部分 面向对象程序设计,一、复习内容 第2章 C+语言基础 第3章 类与对象的构造设计 (要点) 第4章 继承性与派生类 (要点) 第5章 多态性与虚函数 (要点) 第6章 文件的输入与输出 (要点) *这部分的程序设计例题必须熟悉!,第3章 类与对象的构造设计 3.1.1 类设计的基本原则 单一功能原则 封闭/开放原则 最小惊讶原则 3.1.2 类和对象的定义方法 class class_name private: /私有成员 private variables and function; protected: /保护成员 pr

8、otected variables and function; public: /公有成员 public variables and function; object_list;,二、复习要点,对象的另一种创建方法 class_name object_list; 3.1.3 成员函数的功能与定义方式 成员函数的功能和作用是:用于处理对象内部的数据, 实现对象的操作行为,为外部程序提供操作接口。 成员函数的定义方式有两种: (1)外置方式; (2)内置方式,3.1.4 类成员访问的原则是: (1)定义一个类时,数据成员和成员函数的默认访问权限是私有成员。 (2)成员函数可直接访问同类中的成员变量

9、和调用同类中的成员函数,不必在函数名前加上对象名。 (3)私有成员或受保护成员的作用域仅限于类的说明体和类的成员函数;非成员函数应定义为类的友员函数才能访问这个类的私有成员。 (4)公用成员的作用域不但包括类说明体,还包括它所属对象的使用范围。可以在类外访问公用成员,但必须在成员名前加上对象名。,4.1 继承机制 所谓继承就是允许在一个已有类上,增加一些特殊属性或操作,来派生成新的类。这个派生类不仅可以继承基类成员,而且可以定义新的成员,因此可看作前一个类的特殊类。前一个类称为父类,新产生的类叫做子类。通过继承关系可形成一种类层次结构,叫做继承结构。继承是类之间共享属性与服务的一种机制。,继承

10、的一个作用就是代码重用,即从基类派生子类,子类无需修改基类的代码,就可以直接拥有基类的成员,然后增加少量代码就可以实现特殊功能,这就实现了代码的重用;另一个作用是扩充系统,即许派生类在继承父类共性的基础上,增加新的属性和操作来实现特殊功能。,class : ; 有三种: 公有继承(public); 私有继承(private); 保护继承(protected) ; 缺省情况下为私有继承。,class person /基类 protected: char name11; char sex; int age; public: char* GetName(); ; class Student:publ

11、ic person private: char id9; float score; public: float GetScore(); ; void main() ,4.2.1 派生类的定义,class person /基类 protected: char name11; int age; public: person() cout“person”endl; person() cout“delete person”endl; int Getage() return 20; class Student:public person private: char id9; float score; p

12、ublic: student() cout“student”endl; student() cout“delete student”endl; int Getage() return 30; ,void main() person *p; student s; p= 运行结果: person student 20 delete student delete person,第5章 多态性与虚函数 多态性是指在类层次结构的相同类或不同类中,可用相同的函数名实现功能不同的操作,从而可以使用相同的调用方式来调用这些具有不同功能的同名函数。,运行时多态:在类的继承层次结构中,不同层次的类中可能具有同名但

13、实现不同的函数,需要在运行阶段才能根据对象所属的层次来确定调用哪个类中的同名函数。 只有将同名函数说明为虚函数,通过对象指针或对象引用来调用虚函数,才能实现运行时多态。,例5-2 静态联编和动态联编的应用 #include class Student public: virtual void print() cout“A student”endl; ; class GStudent:public Student public: virtual void print() cout“A graduate student”endl; ;,void main() Student s1,*ps; GSt

14、udent s2; s1.print(); s2.print(); s2.Student:print(); ps= ,A student A graduate studentA studentA studentA graduate student,练习题编程实现下列类层次结构,实现运行时多态:,1、用UML描述的系统模型是由一个或多个视图组成的。UML提供了9种视图:用例图、类图、对象图、组件图、配置图、序列图、协作图、状态图和活动图。可以将上述9种图分为用例图、静态视图和动态视图,如下图所示。,第三部分 UML及其应用,2、 用例图 用例图的定义:定义用例图是从用户使用系统的角度描述系统功能

15、的图形表达方法。 一个用例(Use Case) 是用于描述系统的某项功能需求的手段,它能准确地表达活动者与系统的交互情况和系统提供的某项服务。,Use Case的联系 Use Case除了与活动者有联系以外, Use Case之间也存在着一定的联系,包括: (a)泛化联系:一个特殊的Use Case与另一个更一般的Use Case的联系。 (b)使用联系:指一个Use Case使用另一个Use Case的功能行为。,(c)包含联系:一个基本的Use Case包含了另一个公共Use Case的行为。 (d)扩展联系:指一个基本Use Case可以由另一个Use Case的功能行为来扩展。,3、

16、类图的定义 类图是表达构成系统的类及其相互联系的逻辑图示(logic view)。类图是面向对象设计的核心,建立状态图、协作图和其他图的基础。 类与类的关系 主要有关联、聚合/ 组合、泛化/特化、依赖等。,4、序列图的定义 序列图描述了一组交互对象间的动态协作关系,它表示完成某项行为操作的参与对象和这些对象之间传递消息的时间顺序。序列图由对象类角色、生命线、激活期和消息构成。,5、协作图的定义 一个系统的行为是由一些对象实现的,这些对象通过交互和协作来完成系统的服务行为。用来描述实现某项服务所涉及的对象及其相互之间的关系(包括消息通信)的动态视图就称为协作图(Collaboration)。可用UML协作图来描绘业务流程。协作图不同于序列图。,6、状态图(StatechartDiagram)的定义 状态图描述系统运行过程中某类对象可能具有的状态,以及在不同状态间的跳转和触发这些跳转的外部事件。状态图侧重于描述对象在其生

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号