文章目录
一、什么是面向对象程序设计
1.1.1 一种新的程序设计范型
面向对象程序设计是一种新的程序设计的范型。范型是指设计程序的规范、模型和风格。这种范型的主要特征是由过程定义和过程调用组成。
面向过程的程序:
程序=过程+调用
面向对象的程序:
程序=对象+消息
面向对象程序的基本元素是对象。
主要结构特点是:
一、程序一般由类的定义和使用两部分组成。
二、程序中的一切操作都是通过向对象发送消息来实现(对象收到消息后执行对应操作)。
C++是具有面向过程和面向对象两种范型的混合型程序设计语言。
1.1.2
一.对象
现实世界中对象:属性+行为,一个对象往往由一组属性和一组行为。
具有以下特性:
(1):每一个对象必须有一个名字以区别于其他对象。
(2):用属性来描述对象的某些特征。
(3):有一组操作,每组操作决定对象的一种行为。
(4):对象的行为可以分为两类:作用于自身的行为和作用其他对象的行为。
面向对象的程序设计采用了以上人们所熟悉的思路。
二、类
在现实世界中,类是一组具有相同属性和行为的对象的抽象。
在面向对象程序设计中,类是对具有相同的数据数据结构和相同的操作的一类对象的描述。
先声明类,再由类生成其对象。
类和对象之间的关系是:
抽象和具体的关系
三、消息与方法
在面向对象程序设计中,对象之间也需要联系,称为对象的交互。
一个对象与另一个对象的交互叫做消息传递。
一个对象向另一个对象发出的请求称为:消息,接收消息后进行调用相关的方法,执行相应的操作。
特点:
(1):同一对象可以接收不同形式的多个消息,做出不同的相应;
(2):相同形式的消息可以传递给不同的对象,所做出的响应可以是不同的;
(3):对消息的响应并不是必需的,对象可以响应,也可以不响应。
1.1.3 面向对象程序设计的基本特征
1.抽象:抽象是通过特定的实例(对象)抽取共同性质后形成概念的过程。
2.封装:封装是指把数据和实现操作的代码几种起来放在对象内部,并尽可能隐蔽对象的内部细节。
3.继承:对象类之间相关的关系,这种关系是的某一类可以继承另一个类的特征和能力。
继承的作用:
(1):避免公用代码的重复开发,减少代码和数据冗余。
(2):通过增强一致性来减少模块间的接口和界面。
若类之间有继承关系,则有:
(1):类之间具有共享特征(包括数据和操作代码的共享)
(2):类之间具有差别或新增部分(包括非共享的数据和操作代码)
(3):类之间具有层次结构。
继承种类 | 区别 |
---|---|
单继承 | 每个派生类值直接继承了一个基类的特征(一继一) |
多继承 | 派生类直接继承了不止一个基类的特征(一继多) |
4.多态:不同的对象收到相同的消息时执行不同的操作。
C++的多态性:
多态性 | 实现方式 |
---|---|
编译时的多态性 | 函数重载(运算符重载) |
运行时的多态性 | 虚函数 |
二、为什么要使用面向对象程序设计
1.2.1 传统程序设计方法的局限性
(1):生产效率低下
(2):难以应付日益庞大的信息量和多样的信息类型
(3):难以适应各种新环境
1.2.2 面向对象程序设计的主要优点
(1):可提高程序的重用性
(2):可控制程序的复杂性
(3):可改善程序的可维护性
(4):能够更好地支持大型程序设计
(5):增强了计算机处理信息的范围
(6):能很好地适应新的硬件环境