- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Object- Oriented Programming
C++
主讲 成长生
东华大学计算机科学与技术学院
第一章 概述
§1.1 面向对象程序设计的基本思想
C++是基于C语言发展的,又冲破C语言局限的面向对象的程序设计语言。它与Java语言都作为当前计算机科学的主流语言,越来越受到用户的欢迎。
要弄清楚什么是面向对象的程序设计,首先了解和回顾传统的(Pascal(或C))结构化程序设计方法及其设计思想、程序结构及特点。SP(Structure Programming)是60年代诞生的针对当时爆发的所谓“软件危机”,为此发展形成了现代软件工程学的基础。
SP的总的设计思想是:
.自顶向下、层次化
.逐步求精、精细化
程序结构是按功能划分基本模块的树型结构,使模块间的关系尽可能简单独立。因此SP的程序的基本特点是:
.按层次组织模块(战略上划分战役)
.每一模块只有一个入口,一个出口
.代码和数据分离(程序=数据结构+算法)
归纳得到:SP把数据和过程(代码、函数)分离为相互独立的实体,用数据代表问题空间中的客体借以表达实际问题中的信息;程序代码则用来处理加工这些数据。程序员在编程时,必须时刻考虑所要处理的数据结构和类型。对不同的数据格式即使要作同样的处理计算,或者要对相同的数据格式作不同的处理都必须编写不同的程序(如两个整型数和两个浮点数相加)。这样的编程方法,即传统的SP方法设计出来的程序或系统其可重用的成分很少。其次把数据和代码作为不同的分离实体时,总存在着用错误的数据调用正确的程序模块,或用正确的数据调用错误的程序模块的危险,从而使数据与程序始终保持兼容,已成为程序员的一个沉重的负担。在开发一个大型软件课题中,当工程进入到后期若用户改变了方案要求,很容易使技术人员的前期工作受到摧毁性的打击,使其前功尽弃。为克服以上的弊端或者该SP方法难以控制处理的矛盾而产生了面向对象程序设计方法,即Object-Oriented Programming――OOP。从二十世纪六十年代提出对象的雏形,到七十年代美国国防部的专用语言Ada语言,直到目前国际上流行的高品味的Java和C++(Tc++,Balandc++及Vc++),,应该讲OOP方法与技术吸取了SP的一切优点,同时又正视和顺应现实世界由物质和意识二部分组成。映射到面向对象的解空间就是:具体事物-对象;抽象概念-类。
OOP的基本原理是用问题领域的模型来模拟大千世界,从而设计出尽可能直接、自然地表示问题求解方法的软件,这样的软件由对象组成,而对象则是完整反映客观世界事物具有不可分割的静态属性(“数据结构”)与动态行为(“方法”)的。并且它们是既有联系又有变化发展的实体(实例)。如人是一种抽象(类),而张三则是一个具体的一个人,是类的实例,故为对象,他有自身的一系列属性(身高、体重、学历等)。
面向对象抽象的原理有4个。分别是数据抽象,行为(操作)共享,进化和确定性。它们的作用简单地讲把数据封装起来达到数据隐藏,达到数据的高度安全;不同层次的类操作(行为)尽可能共享;进化则是知识积累、知识更新的长期过程;确定性则是一个相对概念,对一个问题的认识和解释,随着时间的推移,其解释也是在发生变化的。(更具体的见P3-但有困难,这些概念在以后的章节中才能详细讨论)。
下面再解释三个专业术语。
对象
什么是对象?对象是私有数据及可以对这些数据施加操作结合在一起所构成的独立实体。这里的操作就是一些操作代码。对象的动作取决于发送给该对象的消息表达式,消息告诉对象要求完成的功能(What to do),并激活该功能,这意味着对象具有自动“知道”如何完成相应操作代码(How to do)的“智能”选择机制。与SP相比,OOP的威力在此初步显露出来。从逻辑上来分析,一个对象是独立存在的模块,从外部看这模块只需了解它具有哪些功能,至于它如何实现这些功能和使用哪些局部数据来完成它们的细节则“隐蔽”在模块内部,这就意味着模块内部状态不受外界干扰改变,也不会殃及到其它模块,进而使模块间依赖性小到几乎没有。
类
什么是类?类是对一组具有相同数据成员和相同操作成员的对象的说明。即类是抽象数据类型的实现,一个类的所有对象都有相同的数据结构和操作代码。每个对象都是某个类的一个具体实例。(有的文献中用实例来替代对象)
继承
继承是OOP的一个重要机制。继承提供了创建新类的一种方法。一个新类可以通过已有类进行修改或扩充来满足新类的要求。新类共享已有类的行为,而自己还具有修改或添加的行为。我们把已有类称之为父类,新类称为子类,则子类继承父类, 而父类派生子类。继承机制的主要优点是
您可能关注的文档
- section 1-3 Ohm’s Law资料.ppt
- section 1-4 Kirchhoff’s Laws资料.ppt
- section 1-5 Basic Analysis Methods资料.ppt
- section 1-6 Sinusoidal AC Circuit Analysis and Three-Phase Circuit资料.ppt
- section 2-1 Introduction资料.ppt
- section 2-2 Boolean Algebra for Digital Systems资料.ppt
- section 2-4 Operational Amplifiers资料.ppt
- section 3-1 Semiconductor Switches资料.ppt
- section 3-2 The DC-DC Converters资料.ppt
- section 3-3 DC-AC Converters资料.ppt
文档评论(0)