面向对象程序设计方法的基本概念一一对象和类 (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 <iostreaM.h> Include <STDIOH> #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 <IOSTREAM.H> ◼ #include <STDIO.H> ◼ #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; ◼ };