第二章 类和对象
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对象和类的关系相当于程序设计语言中变量和变量类型 的关系。
面向对象程序设计方法的基本特征
面向对象程序设计方法具有四个基本特征: 抽象 封装 继承 多态性
1. 抽象 抽象是人类认识问题的最基本手段之一。抽象是指对
具体问题(对象)进行概括,抽出一类对象的公共属性和行 为并加以描述的过程。类是对象的抽象,对象是类的特例。
2.1面向对象程序设计方法及特征
什么是对象: 现实世界是由各种各样的事物组成,包括真实的事物和抽象
的事物。例如,人、动物、汽车(真实的事物)和程序、直线 (抽象的事物)等。 每一类事物都有自己特定的属性(如大小、形状、重量等)和行 为(如生长、行走、转弯、运算等),人们通过研究事物的属性 和行为而认识事物。 在计算机科学中将这些现实世界中的事物称之为对象。对象 是包含现实世界中事物特征的抽象实体,它反映了系统为之 保存信息和与之交互的方法。 在程序设计领域,可以用如下公式表示:
protected属性表示数据成员和成员函数是类的保护成员, 它们允许被本类的成员函数和派生类的成员函数访问或调 用。
例 定义类Time(表示时间)。 class Time{
私有数据成员hour、minute 和second只能在类的成员 函数中被访问或赋值;
对象 = 数据 + 作用于这些数据上的操作
什么是类:
为了描述属性和行为相同的一类对象,引入了类(class) 的概念。
类是具有相同数据结构(属性)和相同操作功能(行为) 的对象的集合,它规定了这些对象的公共属性和行为方 法。
对象是类的一个实例,例如,汽车是一个类,而行驶在 公路上的一辆汽车则是一个对象。
3. 继承
继承是指一个新类可以从现有的类派生而来。新类继承了 现有类的特性,包括一些属性和行为,并且可以修改或增 加新的属性和行为,使之适合具体的需要。
例如,所有的Windows应用程序都有一个窗口,它们 可以看作都是从一个窗口类派生出来的,但有的应用程序 用于文字处理,有的应用程序用于绘图,这是由于派生出 了不同的类,它们增加了不同的属性和行为。
面向对象程序设计的特点(二):
OOP把一个复杂的问题分解成多个能够完成独立功能的对 象(类),然后把这些对象组合起来去完成这个复杂的问 题。
一个对象可由多个更小的对象组成,如汽车由发动机、传 送系统和排气系统等组成。这些对象(类)可由不同的程序 员来设计,可在不同程序中使用,就象一个汽车制造商使 用许多零部件去组装一辆汽车,而这些零部件可能不是自 己生产的。
关键字private、public和protected称为访问权限控制符, 用来设置数据成员和成员函数的访问属性,其默认值为 private。
private属性表示数据成员和成员函数是类的私有成员, 它们只允许被本类的成员函数访问或调用,数据成员一 般定义为private属性;
说明:
publi来自百度文库属性表示数据成员和成员函数是类的公有成员,它 们允许被本类或其它类的成员函数(通过对象)访问或调 用,是类的外部接口,成员函数一般定义为public属性;
C++类定义的基本形式:
class {
<类名>
private: <私有数据成员和私有成员函数的声明列表>;
public: <公有数据成员和公有成员函数的声明列表>;
protected:
<保护数据成员和保护成员函数的声明列表>; };
说明:
类的定义由关键字class开始,其后为用户定义的类名, 花括号括起来的部分称为类体。
面向对象程序设计的特点(一):
OOP围绕现实世界的概念来组织模块,采用对象描述问 题空间的实体,用程序代码模拟现实世界中的对象,使 程序设计过程更自然、更直观。
SP是以功能为中心来描述系统,而OOP是以数据为中心 来描述系统。相对于功能而言,数据具有更强的稳定性。
OOP模拟了对象之间的通信。就象人们之间互通信息一 样,对象之间也可以通过消息进行通信。这样,我们不 必知道一个对象是怎样实现其行为的,只需通过对象提 供的接口进行通信并使用对象所具有的行为功能。
继承很好地解决了软件的可重用性问题。
4. 多态性
多态性是指类中具有相似功能的不同函数使用同一个名 称来实现,并允许不同类的对象对同一消息作出的响应 不相同。
例如,同样的“编辑|粘贴”操作,在字处理程序 和绘图程序中有不同的结果;同样的加法,把两个时间 值相加和把两个整数相加的要求肯定不同。
多态性使程序设计灵活、抽象,具有行为共享和代 码共享的优点,很好地解决了程序的函数同名问题。
存储空间。
C++类
为了支持面向对象程序设计,C++在C语言结构(struct) 数据类型的基础上引入了类这种抽象数据类型。
C++面向对象编程实质上就是面向类编程,只有定义和 实现了类,才能声明属于这个类的对象,才能通过对象 使用定义的成员。
传统C程序员把编程重点放在函数的编写上,而C++程 序员把重点放在类的定义和实现上。
采用面向对象模式就象在流水线上工作,我们最终只需将 多个零部件(已设计好的对象)按照一定关系组合成一个 完整的系统。
2.2 类的声明和对象的定义
类和对象的关系: 对象的类型称为类(class)。类代表了一批对
象的共性和特征。 类是对象的模板,是用来定义对象的一种抽象
类型 类是抽象的,不占内存,对象是具体的,占用
类的定义与实现
C++类将对象的属性抽象为数据成员,将对象的行为抽 象为成员函数,并对它们进行封装。数据成员又称成员 变量,成员函数又称为方法。
C++类在形式上类似于C语言中用户自定义的结构类型, 但定义类时规定了成员的访问控制权限。对象只能访问 所属类的公有成员,而类的私有成员只能在类的成员函 数中被访问。
2. 封装 封装是把每个对象的数据(属性)和操作(行为)包装在
一个类中。一旦定义了对象的属性和行为,则必须决定哪 些属性和行为只用于表示内部状态,哪些属性和行为在外 部是可见的。
一般限制直接访问对象的属性,而应通过操作接口访 问,这样使程序中模块之间关系更简单、数据更安全。对 程序的修改也仅限于类的内部,使得由于修改程序所带来 的影响局部化。
面向对象程序设计方法的基本特征
面向对象程序设计方法具有四个基本特征: 抽象 封装 继承 多态性
1. 抽象 抽象是人类认识问题的最基本手段之一。抽象是指对
具体问题(对象)进行概括,抽出一类对象的公共属性和行 为并加以描述的过程。类是对象的抽象,对象是类的特例。
2.1面向对象程序设计方法及特征
什么是对象: 现实世界是由各种各样的事物组成,包括真实的事物和抽象
的事物。例如,人、动物、汽车(真实的事物)和程序、直线 (抽象的事物)等。 每一类事物都有自己特定的属性(如大小、形状、重量等)和行 为(如生长、行走、转弯、运算等),人们通过研究事物的属性 和行为而认识事物。 在计算机科学中将这些现实世界中的事物称之为对象。对象 是包含现实世界中事物特征的抽象实体,它反映了系统为之 保存信息和与之交互的方法。 在程序设计领域,可以用如下公式表示:
protected属性表示数据成员和成员函数是类的保护成员, 它们允许被本类的成员函数和派生类的成员函数访问或调 用。
例 定义类Time(表示时间)。 class Time{
私有数据成员hour、minute 和second只能在类的成员 函数中被访问或赋值;
对象 = 数据 + 作用于这些数据上的操作
什么是类:
为了描述属性和行为相同的一类对象,引入了类(class) 的概念。
类是具有相同数据结构(属性)和相同操作功能(行为) 的对象的集合,它规定了这些对象的公共属性和行为方 法。
对象是类的一个实例,例如,汽车是一个类,而行驶在 公路上的一辆汽车则是一个对象。
3. 继承
继承是指一个新类可以从现有的类派生而来。新类继承了 现有类的特性,包括一些属性和行为,并且可以修改或增 加新的属性和行为,使之适合具体的需要。
例如,所有的Windows应用程序都有一个窗口,它们 可以看作都是从一个窗口类派生出来的,但有的应用程序 用于文字处理,有的应用程序用于绘图,这是由于派生出 了不同的类,它们增加了不同的属性和行为。
面向对象程序设计的特点(二):
OOP把一个复杂的问题分解成多个能够完成独立功能的对 象(类),然后把这些对象组合起来去完成这个复杂的问 题。
一个对象可由多个更小的对象组成,如汽车由发动机、传 送系统和排气系统等组成。这些对象(类)可由不同的程序 员来设计,可在不同程序中使用,就象一个汽车制造商使 用许多零部件去组装一辆汽车,而这些零部件可能不是自 己生产的。
关键字private、public和protected称为访问权限控制符, 用来设置数据成员和成员函数的访问属性,其默认值为 private。
private属性表示数据成员和成员函数是类的私有成员, 它们只允许被本类的成员函数访问或调用,数据成员一 般定义为private属性;
说明:
publi来自百度文库属性表示数据成员和成员函数是类的公有成员,它 们允许被本类或其它类的成员函数(通过对象)访问或调 用,是类的外部接口,成员函数一般定义为public属性;
C++类定义的基本形式:
class {
<类名>
private: <私有数据成员和私有成员函数的声明列表>;
public: <公有数据成员和公有成员函数的声明列表>;
protected:
<保护数据成员和保护成员函数的声明列表>; };
说明:
类的定义由关键字class开始,其后为用户定义的类名, 花括号括起来的部分称为类体。
面向对象程序设计的特点(一):
OOP围绕现实世界的概念来组织模块,采用对象描述问 题空间的实体,用程序代码模拟现实世界中的对象,使 程序设计过程更自然、更直观。
SP是以功能为中心来描述系统,而OOP是以数据为中心 来描述系统。相对于功能而言,数据具有更强的稳定性。
OOP模拟了对象之间的通信。就象人们之间互通信息一 样,对象之间也可以通过消息进行通信。这样,我们不 必知道一个对象是怎样实现其行为的,只需通过对象提 供的接口进行通信并使用对象所具有的行为功能。
继承很好地解决了软件的可重用性问题。
4. 多态性
多态性是指类中具有相似功能的不同函数使用同一个名 称来实现,并允许不同类的对象对同一消息作出的响应 不相同。
例如,同样的“编辑|粘贴”操作,在字处理程序 和绘图程序中有不同的结果;同样的加法,把两个时间 值相加和把两个整数相加的要求肯定不同。
多态性使程序设计灵活、抽象,具有行为共享和代 码共享的优点,很好地解决了程序的函数同名问题。
存储空间。
C++类
为了支持面向对象程序设计,C++在C语言结构(struct) 数据类型的基础上引入了类这种抽象数据类型。
C++面向对象编程实质上就是面向类编程,只有定义和 实现了类,才能声明属于这个类的对象,才能通过对象 使用定义的成员。
传统C程序员把编程重点放在函数的编写上,而C++程 序员把重点放在类的定义和实现上。
采用面向对象模式就象在流水线上工作,我们最终只需将 多个零部件(已设计好的对象)按照一定关系组合成一个 完整的系统。
2.2 类的声明和对象的定义
类和对象的关系: 对象的类型称为类(class)。类代表了一批对
象的共性和特征。 类是对象的模板,是用来定义对象的一种抽象
类型 类是抽象的,不占内存,对象是具体的,占用
类的定义与实现
C++类将对象的属性抽象为数据成员,将对象的行为抽 象为成员函数,并对它们进行封装。数据成员又称成员 变量,成员函数又称为方法。
C++类在形式上类似于C语言中用户自定义的结构类型, 但定义类时规定了成员的访问控制权限。对象只能访问 所属类的公有成员,而类的私有成员只能在类的成员函 数中被访问。
2. 封装 封装是把每个对象的数据(属性)和操作(行为)包装在
一个类中。一旦定义了对象的属性和行为,则必须决定哪 些属性和行为只用于表示内部状态,哪些属性和行为在外 部是可见的。
一般限制直接访问对象的属性,而应通过操作接口访 问,这样使程序中模块之间关系更简单、数据更安全。对 程序的修改也仅限于类的内部,使得由于修改程序所带来 的影响局部化。