网站大量收购独家精品文档,联系QQ:2885784924

C讲义(面向对象部分).docVIP

  1. 1、本文档共86页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C讲义(面向对象部分)

面向对象的程序设计 面向对象程序(OOP)设计概述 面向过程与面向对象程序设计 面向过程的程序设计 面向过程的程序设计是基于过程的语言(如C)常用的一种编程方法。它主要是强调把整个系统划分为细小的功能模块,称为过程,每个过程用以实现不同的功能,使用的时候按预定的步骤调用就可以了。同时,还要编写一个具有程序入口功能的主程序,当运行一个软件时,主程序会先运行,并按照用户的需要调用其他过程,直到程序运行结束。由此可见,面向过程的程序的执行方式是过程驱动或步骤驱动。 当完成一个程序设计后,如果程序的功能变了,就必须修改程序或重新设计程序,因此,面向过程的程序设计方式代码重用率很低,不便于维护。 面向过程程序设计模式: 例如:开发五子棋游戏软件,面向过程的设计思路就是首先分析问题的步骤: ①开始游戏 ②绘制画面 ③黑子下棋 ④绘制画面 ⑤判断输赢 ⑥白子下棋 ⑦绘制画面 ⑧判断输赢 ⑨返回步骤② ⑩输出最后结果 把上面每个步骤用分别的函数来实现,问题就解决了。 存在着如下缺陷: (1) 以过程(功能)为单位,不能和现实世界很直观地映射 ,不易于理解。 (2) 程序的定律是:程序=(算法)+(数据结构),而传统的程序设计方法是算法和数据分离的。 (3) 面向功能的分解,而用户的改变绝大多数是面向功能的改变,功能实现分散在各过程中,不易于维护和功能扩展。 (4) 数据结构与算法分离,不利于信息隐藏。 如下棋规则变了,必须修改与规则相关的各过程,再比如要加入悔棋功能,那么从输入到判断到显示这一连串的步骤都要改动。 面向对象程序设计 面向对象的程序设计OOP(Object Oriented Programming)是在面向过程的基础上发展起来的一种新的程序设计思想。 在面向对象的程序设计中,将系统分成若干个功能实体,称为对象,对象是构成程序的基本单位和运行实体。每一个对象都有自己的数据和行为,它们均被封装在对象内部,通过这样若干个对象的相互作用来实现程序设计的设计目标。 同样分析五子棋游戏,只需为该系统创建以下几类对象: (1)黑白双方对象:这两种对象除了颜色不一样外,其余的数据和行为都是一模一样的。 (2)棋盘对象:负责绘制画面。 (3)规则对象:负责判定诸如犯规、输赢等。 当程序运行时,第一类对象(黑白双方对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。 可以看出,这种思想方式,完全与现实世界相吻合。 面向对象程序设计模式: 面向过程的程序的执行路线是代码事先确定好的,而面向对象的程序的执行则是由事件驱动实现的,也就是说完全取决于用户在使用程序时激活了什么事件,这种程序执行方式叫事件驱动方式。 演示学生公寓管理系统,理解事件驱动。 面向对象程序设计的基本概念 抽象 从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫做抽象。抽象是形成概念的必须手段。 抽象原则有两方面的意义:第一,尽管问题域中的事物是很复杂的,但是分析员并不需要了解和描述它们的一切,只需要分析研究其中与系统目标有关的事物及其本质性特征。第二,通过舍弃个体事物在细节上的差异,抽取其共同特征而得到一批事物的抽象概念。 抽象是面向对象方法中使用最为广泛的原则。抽象原则包括过程抽象和数据抽象两个方面。过程抽象是指,任何一个完成确定功能的操作序列,其使用者都可以把它看做一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。数据抽象是指根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。数据抽象是面向对象分析的核心原则。它强调把数据(属性)和操作(服务)结合为一个不可分的系统单位(即),的外部只需要知道它做什么,而不必知道它如何做。对象是运行期的基本实体把数据和函数包装在一个单独的单元(称为类)的行为称为封装。面向对象编程的封装性原则要求不能直接访问类中的数据成员。这主要是因为: — 如果直接访问类的数据成员,就必须充分了解类的实现细节,这有悖于隐藏设计细节的思想,会限制代码的重用性和维护性。 — 如果直接访问类的数据成员,就可能有意或无意地破坏对象中的数据,可能会导致难以调试的程序缺陷。继承是可以让某个类型的对象获得另一个类型的对象的属性的方法。 在OOP中,继承的概念很好的支持了代码的重用性多态是OOP的另一个重要概念。多态的意思是事物具有不同形式的能力。 多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。多态在实现继承的过程中被广泛应用。[modifiers] class ide

文档评论(0)

ipad0d + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档