面向对象系统的特性完美版PPT

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
};
第三章 系统的特征
面向对象系统的封装性是一种信息隐藏技术
,它使设计人员能够清楚地标明所提供的服务界
3.1 封装性 3.2 继承性
面,用户只能看见对象提供的功能,却看不到对 象内部的数据以及功能实现代码。
封装机制的目的在于将对象的设计者和使用
3.3 多态性
者分离,使用者不必知道对象功能实现细节,只 需使用设计者提供的协议来命令对象去执行某
2、从继承内容上划分: (1)取代继承: full + 0 (2)包含继承: full + more (3)受限继承: full - limited (4)特化继承: full + more
从上面继承分类的两个方面可以看出,所 有的继承关系都存在于类与类之间,而且都具 有两类不同的性质,一类是用来描述继承源; 另一类是用来描述继承内容的。
派生类不等于基类,即
A≠B
例4:求最大值函数的重载
3. 层次性: 表示了类之间存在着上下关系
继承所具有的作用有两个方面:一方面 可以减少代码冗余;另一方面可以通过协调 性来减少相互之间的接口和界面。
第三章 系统的特征
3.1 封装性 3.2 继承性 3.3 多态性
1、从继承源上划分: 单继承和多继承。
3.1 封装性 3.2 继承性 3.3 多态性
封装的优点: 1.数据独立性 2.具有隐藏性和安全性 3.易于维护
封装的缺点: 需要更多的输入输出函数。
3.1 封装性 3.2 继承性 3.3 多态性
协议是一个对象对外服务的说明,它声明 这个对象可以为外界做什么。它是由一个对象 能够接受并且愿意接受的所有信息构成的对外 接口。也就是说,请求对象进行操作的唯一途 径就是通过协议中提供的消息进行的。
个功能即可。
封装主要指对对象的封装。类概念本身也
具有一种封装意义,它反映了抽象数据类型的思
想。
基本概念:继承所表达的是对象类之间的相交关
第三章 系统的特征 系。它使得某类对象可以继承另外一类对象的特
征和能力。
3.1 封装性
3.2 继承性
类间具有继承关系时应具有的特性: 1)类间具有共享特征(包括数据和程序代码的
第三章 系统的特征
3.1 封装性 3.2 继承性 3.3 多态性
例2:车辆的继承关系
车辆
非机动车
机动车
客车 卡车 轿车
例3:人类按职业划分的一种继承关系 人








中大 研 学学 究 生生 生



师授
第三章 系统的特征
3.1 封装性 3.2 继承性 3.3 多态性
两个概念并没有实质冲突,封装主要是针对 对象而言的;而继承则是针对类而言的。封装可 以是对单个对象的;而继承则是对多个类的。
界公开的功能,它可以响应外界对象的请求,这
4)继承是自动传播代码的有力工具。
1)具有一个清楚的边界,对象的所有私有数据、内部程序(成员函数)细节都被固定在这个边界内。
3.1 封装性 (1)取代继承: full + 0 设 A 为基类, B 为派生类。 另一类是用来描述继承内容的。
但无权访问基类中处于私有段中的
1. 共享性: 派生类具有基类所有特征, char *name; 3.2 继承性 有两类不同的性质,一类是用来描述继承源; 即:A B 有两类不同的性质,一类是用来描述继承源;
称被继承类A为基类或父类,或超类;
3.3 多态性 2. 区别性: 相同点:都具有节省代码的作用,继承定义的类
节,只需根据对象提供的外部特性接口访问对象
这意味着在定义对象的某个操作时, 要委托该操作涉及的其它对象完成部分 任务。
委托与继承的关系
第三章 系统的特征 相同点:都具有节省代码的作用,继承定义的类
协议实际上是一个对象所能接受的所有公 有消息的集合。
3.1 封装性 3.2 继承性 3.3 多态性
对象类所包含的操作(所具有的功能)分为三 种:
1)处于私有段(private)的操作是不向外界 公开的功能,只供对象自己使用。
2)处于保护段(protected)的操作是只向部 分外界宣布的功能,只对派生类对象提供服务。
3.3 多态性
共享); 2)类间具有细微的差别或新增部分(包括非共
享的程序代码和数据);
3)类间具有层次结构。
若类B继承类A时,则属于B中的对象便具有
类A的一切性质(数据属性)和功能(操作)。
称被继承类A为基类或父类,或超类;而称继承 例3第:人三类章按职系业划统分的的一特种继征承关系类B为A的派生类或子类。
两者也有一定的相似性,它们都是实现代码 共享的手段。因为类是静态机制,所以继承是静 态共享手段。而对象是类的实例,所以封装是动 态共享手段。
第三章 系统的特征
3.1 封装性 3.2 继承性 3.3 多态性
在面向对象系统中,为了减少一个操 作的实现代码,应尽量向其它对象发送 消息而不要重写代码,这就是委托的意 义。
第三讲 面向对象系统的特性
3.1 封装性 3.2 继承性 3.3 多态性
3.1 封装性 3.2 继承性 3.3 多态性
从字面理解,封装就是将某事物包围起来, 使外界不知道其实际内容。
在程序设计中,封装是指将一个数据和与这 个数据有关的操作集合放在一起,形成一个独立 的实体-对象,用户不必知道对象行为的实现细 节,只需根据对象提供的外部特性接口访问对象 即可。
3.1 封装性 3.2 继承性 3.3 多态性
封装应该具有下面三个条件:
1)具有一个清楚的边界,对象的所有私有 数据、内部程序(成员函数)细节都被固定在这 个边界内。
2)具有一个接口,这个接口描述了对象能 够提供的功能。
3)对象内部的实现代码受到封装壳的保护, 其它对象不能直接修改本对象所拥有的数据和代 码。
3)处于公有段(public)的操作是向所有外 界公开的功能,它可以响应外界对象的请求,这 些是属于协议的内容。
第三章 系统的特征
3.1 封装性 3.2 继承性 3.3 多态性
例1:学生对象类
class student { private: char *name; int mark; char *major; void changemark(); protected: int getmark(); public: char * getname(); char * getmajor();
相关文档
最新文档