文档介绍:第三课面向对象的程序设计方法
3. 应用框架
5. 设计模式
本章主要研究内容
面向对象程序设计方法的起源
(1)面向对象的程序设计(Objiect Oriented Programming,OOP)方法起源于信息隐藏和抽象数据类型概念,其研究开始于20世纪70年代,到80年代开始进入使用(以C++的使用为标志)。
(2)OOP的基本思想是将要构造的软件表示为对象集,每个对象是将一组数据和使用它的一组基本操作或过程封装在一起而形成的实体,对象与对象之间依靠消息的传递实现联系。
(3)在OOP中较好地体现了人类的两种思维方式:从一般到特殊的演绎推理和从特殊到一般的归纳方法。
面向对象程序设计方法的基本概念--对象和类
(1)对象(Objiect)是将一组数据和作用该组数据的一组操作或过程封装而形成的实体。是OOP中的最基本单元。
(2)对象由对象名、状态、方法(操作)组成。其中状态是指对象存储的数据结构的值的集合,状态随对象的运行(即操作)而变化。
(3)对象具有封装性,从外面只能看见其外部特性(及具备的处理能,由操作实现),而处理能力是如何实现的及对象的内部状态对外都是不可见的。
面向对象程序设计方法的基本概念--对象和类
(4)对象的功能是比较基本的,对象要完成复杂的功能,需要与其他对象协同工作,即一个对象可能要引用另一个对象。对象之间的相互作用只能通过消息的转递来实现。
(5)一个对象收到来自其它对象的消息后,就可以激活(运行)对象中的某个操作,改变其内部状态,必要时以消息回传的方式将运行的结果通知引用该对象的对象。
(6)在一个软件系统中,对象的个数及种类是很多的,通常,把具有相同内部存储结构和相同的一组操作的对象看作是同一“类”,而将属于某一类的对象称之为该类的实例。
面向对象程序设计方法的基本概念--对象和类
(1)例如:狗是具有某些特性的动物的总称,“小黄是一条狗”,则可以认为“狗”是一个类,而小黄是一个狗的实例(对象)
(2)教学楼是具有某种特定属性的建筑的总称,是一个“类”,则西12教学楼则是一个具体的对象。
(3)从方法学上看,类是一个抽象的概念,因为它抽象了一类对象的数据及方法特征,从工程实现的角度考虑,类是一种共享机制,属于该类的对象都可以共享类中定义的数据及操作。
面向对象程序设计方法的基本概念--继承性
从对象到类是一个抽象的过程,类与类之间也可以有许多共性,也即可以在抽象的基础上进一步抽象。
(1)例1:如“小黄-》狗-》动物”,狗比小黄抽象,动物比狗抽象。(2)例2:数的分类
类A(数)
类D(复数)
类C(双精度数)
类B(浮点数)
类E(整数)
面向对象程序设计方法的基本概念--继承性
一般地,上一层的类成为下一层类的超类(superclass,或基类baseclass),下一层的类成为子类(subclass)。
上图中,C是B的子类,也是A的子类,B、D、E均是A的子类,A是超类。
子类自动继承超类(父类)的性质,如B、D、E自动继承A的性质。继承性具有传递性,如B继承A的性质,C继承B的性质,则C继承A的性质。
总之,一个类除了具有该类自有的各种性质外,还可以继承超类的所有性质。
面向对象程序设计方法的基本概念--继承性
继承性的主要作用是提供了共享机制,可以缩短代码的长度,减轻编程人员的负担,节省存储空间,提高程序的可阅读性及可靠性。
面向对象程序设计方法的基本概念--实例(字符集合,用C++表示)
#include <>
#include <>
#define MAX_SET_SIZE 256
harSet
{
public:
void Clear();//字符集的初始化
void WriteSet();//显示字符集的内容
void InsertMember(char c); //往字符集插入一个字符
void DeleteMember(char c); //从字符集中删除一个字符
bool CharInSet(char c); //判断一个字符是否是字符集的成员
private:
char m_Set[MAX_SET_SIZE];
int m_nNum;
};