文档介绍:该【向对象理论鸟瞰面向对象程序设计的概念面向过 】是由【guwutang】上传分享,文档一共【29】页,该文档可以免费在线阅读,需要了解更多关于【向对象理论鸟瞰面向对象程序设计的概念面向过 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。1
一、向对象理论鸟瞰
面向对象理论代表了以往计算机语言的经验总结和发
展, 而C++语言因其包容C语言和面向对象理论的雄浑气度
而出类拔萃。
C++是典型的混合编程语言。
学会C++可以顺利打通面向过程和面向对象之间的人为
障碍,从而进入混合程序设计的自由王国。
2
面向对象理论是一种模块化的整体组合技术,是结构化
程序设计的自然扩展,面向对象理论站在文本替换的编译角
度看是一种封装的封装,这种双层封装带来的好处有:
1. 程序容易维护
2. 代码容易扩展
3. 算法容易重用
面向对象理论适宜于开发大型软件。C语言是一门灵活
快捷高效的语言。程序设计最重要的是提供解决问题一个高
效快捷灵活的方案。
新的编译环境是一个高度集成的混合调试环境(单独的C
编译器逐步退出市场),有充分的理由期望混合编程的C++语
言成为开发操作系统的主流语言。
3
二、面向对象程序设计的概念
1. 对象object
2. 类 class(类类型简称为类)
3. 封装encapsulation
4. 继承inheritance
5. 多态polymorphism
4
1. 对象object
简单地可以将对象视为结构变量。
变量是对象最基本的单元,对象是不同类型变量的一
个有序集合;
结构变量代表内存单元相对静态的数据状态,其变化
通过函数来实现,函数表现作用于数据结构的算法,本身也
是内存中称之为代码的特殊数据。
5
对象是包含数据状态与作用于这些数据状态的若干成
员函数的数据集合。
可以将对象视为一个动态的数据结构,对象对其上的
函数调用加上了一个约束机制,函数优先访问与对象有关的
数据。
对象是类类型定义的变量,类声明了对象的数据结构
和其上算法的一般行为。
可以向对象发送消息而消息本质上就是函数调用。
对象幕后最终还原为结构变量。
6
2. 类 class(类类型简称为类)
类是对象的一个描述、是对象的组织形式、是控制对
象特性的共同规则。
C++中类是用关键字class、struct或union声明的数据
结构。但一般指class引入的集合数据类型。
类包含着对象数据状态的描述和其上算法的定义,类的
数据结构规定对象在内存的存储分配,类的算法直接操作存
储空间上的数据。
对象通过类类型名来建立,编译器则通过对象名与类名
联合管理数据和算法的协调关系。对象是某个类的实例,类
则是对象的抽象。
7
3. 封装encapsulation
面向对象理论中三个重要的支柱是封装、继承与多态。
封装在面向对象的编程前是通过文件级别的模块连接实
现的,在C语言中通过关键字static限制函数和变量在一个
模块的可见性,实际上面向对象的封装效果可以由文件模块
的形式来等价的模拟。
类是用户引入的类型,对象是根据该类型产生的一个实
例即对象名牵头的存储空间的一片数据。
此类的实例和函数非彼类的实例和函数,此类的函数
操作此类的实例所拥有的数据,彼类的函数操作彼类的实例
所拥有的数据。
8
面向对象理论中,封装是关于类的外部接口与内部实现
访问控制的具体组织形式,是数据与算法层次井然的动态包
裹。
系统通过类域分辩符与对象名两者来鉴别数据结构、算
法之间的差别。
类域分辨符是形如CType::的修饰符,CType是用户引
入的类名。
深层封装是由关键字protected 或private引入的对成
员变量和成员函数的访问控制,此种形式的封装是一种精细
的封装,是纯粹的面向对象的产物;为了解除这种深层封装
的约束,C++特地引进inline和friend关键字来加快数据的流
通。
9
4. 继承inheritance
继承是在一个已经建立的类的基础上再接着声明一个
新类的扩展机制,原先已经建立的类称为基类,在基类之下
扩展的类称为派生类,派生类又可以向下充当继续扩展的基
类,因此构成层层派生的一个动态扩展过程。
派生类享有基类的数据结构和算法,而本身又具有增加
的行为和特性,因此继承的机制促进了程序代码的可重用
性。
10
一个基类可以有多个派生类,一个派生类反过来可以具
有多个基类,形成复杂的继承树层次体系。
但基类与派生类之间有一个本质的关系:
基类是一个简单的类,描述相对简单的事物,派生类是
一个复杂些的类处理相对复杂的现象。
这样一种简单到复杂的关系正是人们认识自然过程的线
性映射,软件的可扩充性建立在这样一种对自然的正确回归
上便拥有了坚实的基础。