- 1、本文档共82页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C面向对象程序设计思想
第二章 面向对象程序设计思想 面向对象程序设计的思想(OOP)之所以流行,是因为它是一种先进的、新颖的程序设计思想,这种设计的思想十分接近现实世界的实体的行为,更接近人的思维。利用OOP进行程序设计,可以提高编程效率,减少软件维护的开销。 OOP与以前的程序设计思想有些不一样,在理解上有一些难点,因此本章是学习C++的难点。 § 2.1 面向过程程序设计的基本思想 传统的程序设计方法是面向过程程序设计方法,面向过程程序设计的步骤为: 对具体应用问题进行详细的功能分析,然后将问题分解成若干个可实现的功能模块; 根据功能块的功能来设计一系列与功能相适宜的数据,即设计“数据结构”; 编写一些过程或函数实现对这些数据所进行的操作; 最终的应用程序就是由这些过程或函数以及数据结构所组成。 下面,我们举一个实例来进一步讨论面向过程的程序设计方法。 考虑一个银行系统。该系统允许顾客开设不同类型的银行账户,其中包括现金账户、支票账户和贷款账户,同时允许顾客存款、取款和转账。 根据面向过程的思想,首先将银行系统进行功能分析,然后分解成三个模块分别负责存款、取款和转账三项工作。假设这三个过程是 MakeDeposit、WithDraw和Transfer。 第二步就是对客户建立一个数据结构: struct account { char name; /*姓名*/ unsigned long accounted; / *账号* / float balance; / *余额* / float interestYTD; /*年利息* / char accountType; /*账户类型(现金、支票和贷款) * / } 第三步就是对所需要的操作进行代码编制。 void Deposit( float amount); { … … } float WithDraw(float amount) ; { … … } void Transfer(float amount , unsigned long BankAccount); { … … } 面向过程程序设计的特点: 面向过程程序设计的显著特点就是数据结构和数据处理过程处于分离状态,这会带来很多弊病: 一、和现实需求不吻合: 任何一个现实实体(对象)应该都具有自己的职能, 比如飞机可以飞行,银行可以存款、取款;食堂应该可以卖饭等,而这些功能与具体的客观实体(对象)是密不可分的。 面向过程的程序设计方法就将对象分成了两部分:一部分就是“数据”,表示了一个对象的属性;另外一部分就是“过程或函数”,表示了对象具有的功能。这种分离显然会带来许多的弊病。比如: 顾客与他们的银行帐户有没有一定的联系。因为此时顾客对计算机来说,只不过是一串字符或数字,它根本不知道那个数字代表银行帐户,更不用说哪个帐户是谁的,帐户的内容是什么。这显然和实际的情况不符合的。 这说明面向过程程序设计中,无论是飞机或银行 在计算机中都是一些类似的数字,即一个对象进入计算机后全部程序员无条件的分解成一堆数据,然后通过程序员编制的一个叫“程序”的东西进行重建恢复。 另外考虑数据结构发生改变会产生什么样的结果: 比如Account_type数据项,原来只有现金、支票和贷款三种取值,程序只能识别这三种取值。由于帐户类型的不同,编写存款等过程时,将以不同的操作代码与之对应,即对于现金、支票和贷款这三种不同类型的帐户,其取款过程都是不同的。 如果要增加一种帐户类型“退休帐户”,原来的程序肯定会出错。因为原来的程序只考虑了以上三种帐户的情况,也就是说每增加一种类型的帐户就必须修改重新修改程序代码,可见其维护成本是相当大的。 以上简单地分析了面向过程在程序的直观性和维护性方面的缺陷。 面向过程程序设计方法,把问题被着作一系列将被完成的任务,如读、计算和打印等,许多函数用于完成这些任务。问题的焦点集中于函数。下图显示了一个典型的面向过程的程序结构。 OOP 设计方法的主要出发点是把数据看作程序开发中的基本元素,并且不允许它在系统中自由流动,将数据和操作这些数据的函数紧紧结合在
您可能关注的文档
- ABC库存管理法精讲.ppt
- ACS治疗与出血风险.ppt
- ACEI与冠心病指南.ppt
- alcatel OXE指令详细.doc
- AgilePoint 商業流程建置基礎實務.ppt
- ALOKA彩超探头和配件单.doc
- '金融理论与实务'课堂笔记.doc
- ANSYS功能简介及操作界面介绍.doc
- AOLB製程、PCB材料特性簡介.ppt
- AOC形象店手册.ppt
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)