当前位置:文档之家› 面向对象程序设计完整版

面向对象程序设计完整版

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