面向对象程序设计理论篇.ppt

上传人:sccc 文档编号:5461799 上传时间:2023-07-09 格式:PPT 页数:21 大小:228.54KB
返回 下载 相关 举报
面向对象程序设计理论篇.ppt_第1页
第1页 / 共21页
面向对象程序设计理论篇.ppt_第2页
第2页 / 共21页
面向对象程序设计理论篇.ppt_第3页
第3页 / 共21页
面向对象程序设计理论篇.ppt_第4页
第4页 / 共21页
面向对象程序设计理论篇.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《面向对象程序设计理论篇.ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计理论篇.ppt(21页珍藏版)》请在三一办公上搜索。

1、面向对象程序设计理论篇,武汉大学资源与环境科学学院地理信息科学系,教材及参考资料:,面向对象的理论与C+实践 王燕 编著 清华大学出版社,By:任福 博士Email:Room:7-501,第三章:面向对象系统的特性,封装性 继承性 多态性,3.封装性,3.什么是封装,第三章:面向对象系统的特性,封装就是将一个数据和与这个数据有关的操作集合放在一起,形成一个能动的实体对象,用户不必要知道对象行为的实现细节,只需要根据对象提供的外部特性接口访问对象即可。因此,从用户的角度看,就象一个“黑匣子”。,封装的条件:具有一个清楚的边界;具有一个接口;保护内部代码不被其他对象直接修改;,3.封装性,3.2什

2、么是协议,第三章:面向对象系统的特性,协议是一个对象对外服务的说明,是一个对象所能接受的所有公有消息的集合。举例,3.封装性,3.3 面向对象系统的封装性,第三章:面向对象系统的特性,面向对象的封装性是一种信息隐藏技术:目的:使用者与开发者分开 系统设计员 表明所提供的服务界面 用户或应用程序员 对象提供一组服务,屏蔽内部 开发程序员 对象实现、编码 涵义:主要是对象的封装,但封装的含义不仅仅是数据隐藏,它意味着任何形式的隐藏,如类的封装。,3.2 继承性,3.2.1 继承的引入,第三章:面向对象系统的特性,继承表达了一种对象类的相交关系 继承的几个特征:共享:数据和代码 细微差别与新增 层次

3、结构 继承的作用:减少代码冗余 通过协调减少相互之间的接口和界面,3.2 继承性,3.2.1 继承的分类,第三章:面向对象系统的特性,继承,从继承源划分,从继承内容划分,单继承,多继承,取代继承,包含继承,受限继承,特化继承,说明:继承关系存在与类与类之间,3.2 继承性,3.2.1 继承与封装的关系,第三章:面向对象系统的特性,相似性:都是一种共享代码的手段 继承是一种静态共享代码的手段 封装是一种动态共享代码的手段 区别:针对的层次不同 封装性主要是指对象的封装 继承是类的机制,是一种静态机制 对象是类的实例,也许是派生类的实例 也许是基类的实例,3.2 继承性,3.2.1 继承与委托的关

4、系,第三章:面向对象系统的特性,相似性:节省代码 派生类通过继承共享了基类的代码 委托是一个对象通过其他对象完成操作 区别:性质不同 继承是静态关系 委托既可以静态定义也可以动态定义,3.2 继承性,3.2.1 类的层次,第三章:面向对象系统的特性,类的层次可以清楚有效的表示现实世界中事物的分类问题。,Class A/Class B:public A/Class C:public B/,举例:Visual C+中类的层次,3.2 继承性,3.2.1 单继承与多继承,第三章:面向对象系统的特性,A,B,C,D,E,A,B,C,D,E,F,3.2 继承性,3.2.1 面向对象系统的继承性,第三章:

5、面向对象系统的特性,继承机制的优点:清晰体现类层次结构 代码共享以减少冗余 减少接口和界面,容易维护 代码传播的有效手段 是构造、建立和扩充新类的有效手段,3.3 多态性,3.3.1 重载的概念,第三章:面向对象系统的特性,重载的含义是指通过为函数和运算符创建附加定义而使他们的名字可以重载,即相同名字的函数或运算符在不同的场合可以表现出不同的行为。,函数重载 运算符重载,3.3 多态性,3.3.2 虚函数的概念,第三章:面向对象系统的特性,虚函数使用户在一个类等级中可以使用相同函数的多个版本,每一个版本均属于类等级中的不同的类,究竟使用的是哪一个版本需要在运行中决定。注意:虚函数的各个版本中,

6、其返回值、函数参数的个数和类型必须是一致的。,3.3 多态性,3.3.3 抽象类的概念,第三章:面向对象系统的特性,抽象类的作用在于将许多有关的类组织在一起,提供一个公共的基类,而那些被它组织在一起的具体的类由它派生出来。它刻画了公有行为的特征,并通过继承机制传送给它的派生类。抽象类只描述与这类对象有关的协议和协议消息的部分实现,完整的实现留给它的派生类来具体完成。抽象类型是不能创建具体对象的类型,即不能产生实例,只能建立它的派生类的对象。举 例,3.3 多态性,3.3.3 面向对象系统的多态性,第三章:面向对象系统的特性,涵义:面向对象系统的多态性指的是,当不同的对象收到相同的消息时产生不同

7、的动作。C+语言支持两种多态:编译时的多态性和运行时的多态性。编译时的多态性是通过使用重载来实现的,是相对静止的多态性。运行时的多态性是通过虚函数来实现的,到底运行的哪个函数版本,需要在运行时找出发送消息的对象来确定。举例,总结,第三章:面向对象系统的特性,概念:封装、协议、继承、委托、重载、多态、抽象类等。面向对象系统的多态性。封装与继承的关系。,3.封装性,3.2什么是协议,第三章:面向对象系统的特性,返回,class studentprivate:char*name;int*major;void changmark();protect:int getmark();public:char*

8、getname();char*getmajor();,私有段:不向外界公开的功能,只供对象自己使用。,保护段:部分向外界宣布的功能,只供自己及派生类对象使用。,公有段:所有向外界宣布的功能,可以响应外部的请求,是属于协议的内容。,3.2 继承性,第三章:面向对象系统的特性,返回,3.3 多态性,3.3.3 抽象类的概念,第三章:面向对象系统的特性,class shapeprivate:int x,y;/public:void move(int int);virtual void rotate(int)=0;/定义纯虚函数Virtual void draw();/定义虚函数,class circle:public shapeprivate:int radius;public:void rotate(int);void Draw();,返回,3.3 多态性,3.3.3 面向对象系统的多态性,第三章:面向对象系统的特性,返回,目标超类,点目标类,线目标类,面目标类,弧段目标类,路径目标类,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号