面向对象程序设计完整版
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.类
什么是类?类是对一组具有相同数据成员和相同操作成员的 对象的说明。即类是抽象数据类型的实现,一个类的所有对象都
有相同的数据结构和操作代码。每个对象都是某个类的一个具体 实例。(有的文献中用实例来替代对象)
3.继承
继承是OOP的一个重要机制。继承提供了创立新类的一种 方法。一个新类能够经过已有类进行修改或扩充来满足新类的要 求。新类共享已有类的行为,而自己还具有修改或添加的行为。 我们把已有类称之为父类,新类称为子类,则子类继承父类,而 父类派生子类。继承机制的主要优点是能减小代码和数据的重复 冗余度,大大增强程序的重用性,能清晰体现相似类之间的层次 关系。
Object- Orien ted Programmi ng
C++
主讲成长生
东华大学计算机科学与技术学院
第一章 概述
§1.1面向对象程序设计的基本wenku.baidu.com想
C++是基于C语言发展的,又冲破C语言局限的面向对象的程 序设计语言。它与Java语言都作为当前计算机科学的主流语言,越来越受到用户的欢迎。
要弄清楚什么是面向对象的程序设计,首先了解和回顾传统 的(Pascal(或C))结构化程序设计方法及其设计思想、 程序 结构及特点。SP(Structure Programming)是60年代诞生的针对 当时爆发的所谓”软件危机”,为此发展形成了现代软件工程学 的基础。
SP的总的设计思想是:
.自顶向下、 层次化
.逐步求精、 精细化
程序结构是按功能划分基本模块的树型结构,使模块间的关 系尽可能简单独立。因此SP的程序的基本特点是:
.按层次组织模块(战略上划分战役)
.每一模块只有一个入口,一个出口
•代码和数据分离(程序=数据结构+算法)
归纳得到:SP把数据和过程(代码、 函数)分离为相互独立 的实体,用数据代表问题空间中的客体借以表示实际问题中的信
什么叫消息?消息是要求某个对象执行其中某个功能操作的
面向对象抽象的原理有4个。分别是数据抽象,行为(操作)共享,进化和确定性。它们的作用简单地讲把数据封装起来达到 数据隐藏,达到数据的高度安全;不同层次的类操作(行为)尽 可能共享;进化则是知识积累、 知识更新的长期过程;确定性则 是一个相对概念,对一个问题的认识和解释,随着时间的推移,其解释也是在发生变化的。(更具体的见P3-但有困难,这些概 念在以后的章节中才能详细讨论)。
息;程序代码则用来处理加工这些数据。程序员在编程时
时刻考虑所要处理的数据结构和类型。对不同的数据格式即使要 作同样的处理计算,或者要对相同的数据格式作不同的处理都必 须编写不同的程序(如两个整型数和两个浮点数相加)。这样的 编程方法,即传统的SP方法设计出来的程序或系统其可重用的成 分很少。其次把数据和代码作为不同的分离实体时,总存在着用 错误的数据调用正确的程序模块,或用正确的数据调用错误的程 序模块的危险,从而使数据与程序始终保持兼容,已成为程序员
C++是 一种面向对象的程序设计语言。这种语言有七个主要的 特点。
1)数据圭寸装
例先说明一个类
class类名
<成员函数>
body
<数据成员>
};
再定义一个属于该类的对象。
在C++中,类是支持数据封装的工具,而对象则是数据封装 的实现。类能够看作为一种数据类型,则对象视为该类型的变量,其定义一个对象的格式为:
计出尽可能直接、 自然地表示问题求解方法的软件,这样的软件 由对象组成,而对象则是完整反映客观世界事物具有不可分割的 静态属性(”数据结构”)与动态行为(”方法”)的。而且它 们是既有联系又有变化发展的实体(实例)。如人是一种抽象(类) ,而张三则是一个具体的一个人,是类的实例,故为对象,她有自身的一系列属性(身高、 体重、 学历等)。
2)作用域控制或访问控制权限
访问控制权限有三种,分别为公有的(public)、 私有的(private)及受保护的(protected)。成员函数一般都采用
public。此时,类体内外都可访问。而private只能由类内函数 访问。Protected类内可访问,类外只能由该类的子类或友元来访 问。
3)消息发送
类名 对象名
所谓数据封装就是把若干个成员函数(前面讲是操作、 行为-Pascal中的过程)和一系列数据成员(结构成员、 记录中的成 员)全部封装在一个类体中,成员函数的作用对数据成员进行操 作。类外的简单变量无法进入,以达到数据安全、 数据隐蔽的目 的。对象对数据成员进行操作访问也是经过对应的成员函数来实 施的,因此成员函数的作用相当于一个软件的接口,经过该接口 内外界进行交换信息。
下面再解释三个专业术语。
1.对象
什么是对象?对象是私有数据及能够对这些数据施加操作结 合在一起所构成的独立实体。这里的操作就是一些操作代码。对 象的动作取决于发送给该对象的消息表示式,消息告诉对象要求 完成的功能(What to do),并激活该功能,这意味着对象具有
自动”知道”如何完成相应操作代码(How to do)的”智能”选 择机制。与SP相比,OOP的威力在此初步显露出来。从逻辑上来 分析,一个对象是独立存在的模块,从外部看这模块只需了解它 具有哪些功能,至于它如何实现这些功能和使用哪些局部数据来 完成它们的细节则”隐蔽”在模块内部,这就意味着模块内部状 态不受外界干扰改变,也不会殃及到其它模块,进而使模块间依 赖性小到几乎没有。
的一个沉重的负担。在开发一个大型软件课题中,当工程进入到
后期若用户改变了方案要求,很容易使技术人员的前期工作受到 摧毁性的打击,使其前功尽弃。为克服以上的弊端或者该SP方法
难以控制处理的矛盾而产生了面向对象程序设计方法,即Object—Oriented ProgrammingOOP从二十世纪六十年代提出对象
的雏形,到七十年代美国国防部的专用语言Ada语言,直到当前 国际上流行的高品味的Java和C++(Tc++,Balandc++及Vc++),,应该讲OOP方法与技术吸取了SP的一切优点,同时又正视和顺应 现实世界由物质和意识二部分组成。映射到面向对象的解空间就 是:具体事物—对象;抽象概念—类。
OOP的基本原理是用问题领域的模型来模拟大千世界,从而设
什么是类?类是对一组具有相同数据成员和相同操作成员的 对象的说明。即类是抽象数据类型的实现,一个类的所有对象都
有相同的数据结构和操作代码。每个对象都是某个类的一个具体 实例。(有的文献中用实例来替代对象)
3.继承
继承是OOP的一个重要机制。继承提供了创立新类的一种 方法。一个新类能够经过已有类进行修改或扩充来满足新类的要 求。新类共享已有类的行为,而自己还具有修改或添加的行为。 我们把已有类称之为父类,新类称为子类,则子类继承父类,而 父类派生子类。继承机制的主要优点是能减小代码和数据的重复 冗余度,大大增强程序的重用性,能清晰体现相似类之间的层次 关系。
Object- Orien ted Programmi ng
C++
主讲成长生
东华大学计算机科学与技术学院
第一章 概述
§1.1面向对象程序设计的基本wenku.baidu.com想
C++是基于C语言发展的,又冲破C语言局限的面向对象的程 序设计语言。它与Java语言都作为当前计算机科学的主流语言,越来越受到用户的欢迎。
要弄清楚什么是面向对象的程序设计,首先了解和回顾传统 的(Pascal(或C))结构化程序设计方法及其设计思想、 程序 结构及特点。SP(Structure Programming)是60年代诞生的针对 当时爆发的所谓”软件危机”,为此发展形成了现代软件工程学 的基础。
SP的总的设计思想是:
.自顶向下、 层次化
.逐步求精、 精细化
程序结构是按功能划分基本模块的树型结构,使模块间的关 系尽可能简单独立。因此SP的程序的基本特点是:
.按层次组织模块(战略上划分战役)
.每一模块只有一个入口,一个出口
•代码和数据分离(程序=数据结构+算法)
归纳得到:SP把数据和过程(代码、 函数)分离为相互独立 的实体,用数据代表问题空间中的客体借以表示实际问题中的信
什么叫消息?消息是要求某个对象执行其中某个功能操作的
面向对象抽象的原理有4个。分别是数据抽象,行为(操作)共享,进化和确定性。它们的作用简单地讲把数据封装起来达到 数据隐藏,达到数据的高度安全;不同层次的类操作(行为)尽 可能共享;进化则是知识积累、 知识更新的长期过程;确定性则 是一个相对概念,对一个问题的认识和解释,随着时间的推移,其解释也是在发生变化的。(更具体的见P3-但有困难,这些概 念在以后的章节中才能详细讨论)。
息;程序代码则用来处理加工这些数据。程序员在编程时
时刻考虑所要处理的数据结构和类型。对不同的数据格式即使要 作同样的处理计算,或者要对相同的数据格式作不同的处理都必 须编写不同的程序(如两个整型数和两个浮点数相加)。这样的 编程方法,即传统的SP方法设计出来的程序或系统其可重用的成 分很少。其次把数据和代码作为不同的分离实体时,总存在着用 错误的数据调用正确的程序模块,或用正确的数据调用错误的程 序模块的危险,从而使数据与程序始终保持兼容,已成为程序员
C++是 一种面向对象的程序设计语言。这种语言有七个主要的 特点。
1)数据圭寸装
例先说明一个类
class类名
<成员函数>
body
<数据成员>
};
再定义一个属于该类的对象。
在C++中,类是支持数据封装的工具,而对象则是数据封装 的实现。类能够看作为一种数据类型,则对象视为该类型的变量,其定义一个对象的格式为:
计出尽可能直接、 自然地表示问题求解方法的软件,这样的软件 由对象组成,而对象则是完整反映客观世界事物具有不可分割的 静态属性(”数据结构”)与动态行为(”方法”)的。而且它 们是既有联系又有变化发展的实体(实例)。如人是一种抽象(类) ,而张三则是一个具体的一个人,是类的实例,故为对象,她有自身的一系列属性(身高、 体重、 学历等)。
2)作用域控制或访问控制权限
访问控制权限有三种,分别为公有的(public)、 私有的(private)及受保护的(protected)。成员函数一般都采用
public。此时,类体内外都可访问。而private只能由类内函数 访问。Protected类内可访问,类外只能由该类的子类或友元来访 问。
3)消息发送
类名 对象名
所谓数据封装就是把若干个成员函数(前面讲是操作、 行为-Pascal中的过程)和一系列数据成员(结构成员、 记录中的成 员)全部封装在一个类体中,成员函数的作用对数据成员进行操 作。类外的简单变量无法进入,以达到数据安全、 数据隐蔽的目 的。对象对数据成员进行操作访问也是经过对应的成员函数来实 施的,因此成员函数的作用相当于一个软件的接口,经过该接口 内外界进行交换信息。
下面再解释三个专业术语。
1.对象
什么是对象?对象是私有数据及能够对这些数据施加操作结 合在一起所构成的独立实体。这里的操作就是一些操作代码。对 象的动作取决于发送给该对象的消息表示式,消息告诉对象要求 完成的功能(What to do),并激活该功能,这意味着对象具有
自动”知道”如何完成相应操作代码(How to do)的”智能”选 择机制。与SP相比,OOP的威力在此初步显露出来。从逻辑上来 分析,一个对象是独立存在的模块,从外部看这模块只需了解它 具有哪些功能,至于它如何实现这些功能和使用哪些局部数据来 完成它们的细节则”隐蔽”在模块内部,这就意味着模块内部状 态不受外界干扰改变,也不会殃及到其它模块,进而使模块间依 赖性小到几乎没有。
的一个沉重的负担。在开发一个大型软件课题中,当工程进入到
后期若用户改变了方案要求,很容易使技术人员的前期工作受到 摧毁性的打击,使其前功尽弃。为克服以上的弊端或者该SP方法
难以控制处理的矛盾而产生了面向对象程序设计方法,即Object—Oriented ProgrammingOOP从二十世纪六十年代提出对象
的雏形,到七十年代美国国防部的专用语言Ada语言,直到当前 国际上流行的高品味的Java和C++(Tc++,Balandc++及Vc++),,应该讲OOP方法与技术吸取了SP的一切优点,同时又正视和顺应 现实世界由物质和意识二部分组成。映射到面向对象的解空间就 是:具体事物—对象;抽象概念—类。
OOP的基本原理是用问题领域的模型来模拟大千世界,从而设