C++面向对象程序设计(第二版)
【1】第一章
什么是面向对象程序设计?
程序=对象+消息
(1)程序由类的定义
和类的使用
两部分组成
(2)程序中的一切操作都是通过向对象发送消息
来实现的,对象接收到消息
后,启动有关方法
完成相应的操作
在面向对象程序设计中,什么是对象?什么是类?对象与类的关系是什么? (3)现实世界中的对象有哪些特征?
对象=(描述对象属性的)数据+(操作对象的)方法
类 = 一组具有相同属性和行为的对象的抽象
,具有相同的数据和操作的一组对象的集合
类是创建对象的模板
,它包含对创建对象的状态描述
现实世界中的对象:
- 每一个对象必须有一个名字以区别于其他对象
- 用属性来描述它的某些特征
- 有一组操作,每个操作决定对象的一种行为(操作包括:自身所承受的操作和施加于其他对象的操作)
什么是消息,消息具有什么性质?
消息传递:允许一个对象与另一个对象进行交互的一种程序设计机制
当对象接收到发向它的消息时,就调用有关的方法,执行相应的操作
- 同一个对象可以接收不同形式的多个消息,做出不同的响应
- 同一个消息传递给不同对象,所做出的响应可以是不同的
- 对象可以不响应消息
什么是方法?在C++中它是通过什么来实现的?
对象所执行的行为/操作,通过调用相应的函数实现
C++中方法是通过成员函数
实现的
什么是抽象和封装?
抽象=数据抽象+行为抽象
数据抽象描述某类对象的属性和状态
(特征物理量
)(数据成员
);行为抽象描述某类对象的共同行为特征
(成员函数
)
以学生管理系统为例:
- 共同的属性:学号、姓名、成绩 (数据抽象部分)
- 共同的行为:成绩录入、成绩排名 (行为抽象)
封装
将结构体
升华到类
的层次
将有关的数据
和操作
代码封装在一个对象中,各个对象相对独立、互不干扰
将对象中某些数据与操作代码对外隐蔽
,只留有少量接口
,以便与外界联系,接收外界的消息
什么是继承?请举例说明。
继承所表达的是对象类之间的关系
,这种关系使得某一类可以继承
另外一个类的特征和能力
若类之间具有继承关系,那它们之间具有什么特征?
类间具有共享特征
类间具有差别
或新增部分
(包括数据
和操作代码
的共享)
类间具有层次结构
什么是单继承?多继承?请举例说明?
单继承:每个派生类只直接继承了一个基类的特征
(上面例子)
多继承:多继承是指多个基类派生出一个派生类的继承关系
什么是多态性?请举例说明。
不同对象收到相同消息时产生多种不同的行为方式
- 编译时多态:函数重载+运算符重载
- 运行时多态:虚函数
传统程序设计方法的局限性主要有哪些?
- 效率低
- 难以处理日益庞大的信息量和多样的信息类型
- 难以适应各种新环境
面向对象程序设计的优点主要有哪些?
- 提高代码的重用性
- 改善代码的可维护性
【2】第二章
待整理
【3】第三章
待整理