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