C/C++程序设计教程 郑秋生 主编 第1章 类和对象 应该重点掌握以下内容: 面向对象程序设计的基本特点 类和对象的定义和使用 构造函数和析构函数 拷贝构造函数和堆对象、对象数组 友元函数和友元类 第1章 类和对象 1.1 面向对象程序设计概述 1.2 面向对象方法的基本特征 1.3 类和对象的定义 1.4 类的成员函数 1.5 对象成员的引用 1.6 构造函数和析构函数 1.7 类和对象的进一步应用 1.8 this指针 1.9 静态成员 1.10 友元函数和友元类 1.11 综合应用实例 1.1 面向对象程序设计概述 一、什么是面向对象程序设计 面向对象程序设计(Object Oriented Programming----简称OOP)是软件系统设计与实现的新方法,这种新方法即吸取了结构化程序设计的全部优点,又考虑了现实世界与面向对象空间的映射关系,所追求的目标是将现实世界的问题求解尽可能的简单化。 二、面向对象程序设计的基本思路 例如:生产一台电脑 1.2 面向对象方法的基本特征 1.2.1 对象和类 1.2.2 封装(encapsulation)与数据隐藏 1.2.3 继承(inheritance)与重用 1.2.4 多态性(polymorphism) 1.2.5 消息 1.2.6 面向过程与面向对象程序设计方法的比较 1.2.1 对象和类 一、现实世界与面向对象系统对应关系 二、什么是类 1. 类是一种复杂的数据类型,它将不同类型的数据和与这些数据相关的操作封装在一起。类是对现实世界客观事物的抽象。 2. 两方面的要素: 属性(atrribute)---数据 行为(behavior) -----数据的操作 (函数) 三、什么是对象 对象是类的一个实体,又称为实例 1.2.1 对象和类 四、对象与类的关系 五、对象与对象之间消息传递 1.2.2 封装与数据隐藏 一、什么是封装 封装是指将对象的数据和与这个数据有关的操作放在一起。 各个对象之间相互独立,互不干扰。 对象只留少量的接口,以便与外部联系。从外部看对象就像一个“黑匣子”,数据和方法是隐蔽的、看不见的。 当用户使用对象时,不必知道对象的具体实现细节,只需要根据对象提供的外部接口访问对象即可。 二、封装应具有以下几个特点 具有一个清楚的边界,私有成员封装在内部,外部不可以访问 提供必要的接口 对象内部的数据和方法是受封装外壳保护的,其它对象不能直接使用。 1.2.3 继承与重用 一、继承概念的提出 例如:已定义电视机类,现需要定义彩色电视机类 解决方法: 1.重新设计 2.继承:继承原来电视机的属性和方法,再添加彩色电视机自己特有的新的属性和行为 二、继承的概念 C++提供的继承机制提供了类之间相互关系的解决方案,使某个类可以继承另外一个类的特征和能力。 使用继承符合人们对事物的认识和叙述,大大简化了对问题的描述,提高了程序的可重用性,从而提高了程序设计、修改、扩充的效率,实现软件重用(software reusability)。 1.2.4 多态性(polymorphism) 一、多态性的概念 多态性:描述的是同一个消息可以根据发送消息对象的不同采用不同的行为方式。 例如 学校的上课铃响,不同班级的学生进入不同的教室学习,不同的老师进入不同教室开始讲课,不同的对象会作出不同的响应。可以看到学生和教师在接受到同一消息(上课铃声)时,执行不同的操作,这就是多态的表现。 二、C++支持多态 静态多态性 动态多态性 1.2.5 消息 面向对象技术的封装使得对象相互独立,各个对象要相互协作实现系统的功能则需要对象之间的消息传递机制。消息是一个对象向另一个对象发出的服务请求,进行对象之间的通信。也可以说是一个对象调用另一个对象的方法(Method)或称为函数(Function)。 1.2.6 面向过程与面向对象程序设计方法的比较 一、面向过程程序设计方法 程序 = 数据结构+算法 二、面向对象程序设计方法的规律是: 对象 = (数据结构+ 算法) 程序 = 对象 + 对象 + 对象 + …… + 对象 1.3.1 类的定义 一、类定义组成 数据成员:说明类的属性 成员函数(又称函数成员):对类数据成员操作的类内函数,又称为方法。 二、类定义的一般格式为 class 类名 { public : 数据成员和成员函数实现 protected:
原创力文档

文档评论(0)