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