- 1、本文档共86页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C讲义(面向对象部分)
面向对象的程序设计
面向对象程序(OOP)设计概述
面向过程与面向对象程序设计
面向过程的程序设计
面向过程的程序设计是基于过程的语言(如C)常用的一种编程方法。它主要是强调把整个系统划分为细小的功能模块,称为过程,每个过程用以实现不同的功能,使用的时候按预定的步骤调用就可以了。同时,还要编写一个具有程序入口功能的主程序,当运行一个软件时,主程序会先运行,并按照用户的需要调用其他过程,直到程序运行结束。由此可见,面向过程的程序的执行方式是过程驱动或步骤驱动。
当完成一个程序设计后,如果程序的功能变了,就必须修改程序或重新设计程序,因此,面向过程的程序设计方式代码重用率很低,不便于维护。
面向过程程序设计模式:
例如:开发五子棋游戏软件,面向过程的设计思路就是首先分析问题的步骤:
①开始游戏
②绘制画面
③黑子下棋
④绘制画面
⑤判断输赢
⑥白子下棋
⑦绘制画面
⑧判断输赢
⑨返回步骤②
⑩输出最后结果
把上面每个步骤用分别的函数来实现,问题就解决了。
存在着如下缺陷:
(1) 以过程(功能)为单位,不能和现实世界很直观地映射 ,不易于理解。
(2) 程序的定律是:程序=(算法)+(数据结构),而传统的程序设计方法是算法和数据分离的。
(3) 面向功能的分解,而用户的改变绝大多数是面向功能的改变,功能实现分散在各过程中,不易于维护和功能扩展。
(4) 数据结构与算法分离,不利于信息隐藏。
如下棋规则变了,必须修改与规则相关的各过程,再比如要加入悔棋功能,那么从输入到判断到显示这一连串的步骤都要改动。
面向对象程序设计
面向对象的程序设计OOP(Object Oriented Programming)是在面向过程的基础上发展起来的一种新的程序设计思想。
在面向对象的程序设计中,将系统分成若干个功能实体,称为对象,对象是构成程序的基本单位和运行实体。每一个对象都有自己的数据和行为,它们均被封装在对象内部,通过这样若干个对象的相互作用来实现程序设计的设计目标。
同样分析五子棋游戏,只需为该系统创建以下几类对象:
(1)黑白双方对象:这两种对象除了颜色不一样外,其余的数据和行为都是一模一样的。
(2)棋盘对象:负责绘制画面。
(3)规则对象:负责判定诸如犯规、输赢等。
当程序运行时,第一类对象(黑白双方对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。
可以看出,这种思想方式,完全与现实世界相吻合。
面向对象程序设计模式:
面向过程的程序的执行路线是代码事先确定好的,而面向对象的程序的执行则是由事件驱动实现的,也就是说完全取决于用户在使用程序时激活了什么事件,这种程序执行方式叫事件驱动方式。
演示学生公寓管理系统,理解事件驱动。
面向对象程序设计的基本概念
抽象
从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫做抽象。抽象是形成概念的必须手段。
抽象原则有两方面的意义:第一,尽管问题域中的事物是很复杂的,但是分析员并不需要了解和描述它们的一切,只需要分析研究其中与系统目标有关的事物及其本质性特征。第二,通过舍弃个体事物在细节上的差异,抽取其共同特征而得到一批事物的抽象概念。
抽象是面向对象方法中使用最为广泛的原则。抽象原则包括过程抽象和数据抽象两个方面。过程抽象是指,任何一个完成确定功能的操作序列,其使用者都可以把它看做一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。数据抽象是指根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。数据抽象是面向对象分析的核心原则。它强调把数据(属性)和操作(服务)结合为一个不可分的系统单位(即),的外部只需要知道它做什么,而不必知道它如何做。对象是运行期的基本实体把数据和函数包装在一个单独的单元(称为类)的行为称为封装。面向对象编程的封装性原则要求不能直接访问类中的数据成员。这主要是因为:
— 如果直接访问类的数据成员,就必须充分了解类的实现细节,这有悖于隐藏设计细节的思想,会限制代码的重用性和维护性。
— 如果直接访问类的数据成员,就可能有意或无意地破坏对象中的数据,可能会导致难以调试的程序缺陷。继承是可以让某个类型的对象获得另一个类型的对象的属性的方法。
在OOP中,继承的概念很好的支持了代码的重用性多态是OOP的另一个重要概念。多态的意思是事物具有不同形式的能力。
多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。多态在实现继承的过程中被广泛应用。[modifiers] class ide
您可能关注的文档
- Android平台酒店系统设计及实现.doc
- ASKFSKPSK调制及解调.doc
- ARM平板电脑底层硬件驱动设计.doc
- ARM复习及总结.doc
- (天俊坪山)施组方案(静压锤击桩).doc
- ATC单片机控制八路温度采集及显示系统设计.doc
- ATC数字式压力表设计及实现.doc
- ATC单片机数字电压表仿真设计课程设计.doc
- ATM自动取款机系统分析及设计.doc
- AutoCAD属性块及Excel电子表格双向存取.doc
- 日本第一课时课件-2024-2025学年七年级地理下学期(湘教版2024).pptx
- 1.1 党的主张的人民意志的统一 课件(共29张PPT)--2025年八年级道德与法治下册 (统编版).pptx
- 1.1+党的主张和人民意志的统一+课件-2024-2025学年统编版道德与法治八年级下册 (3).pptx
- 2.2+加强宪法监督+课件-2024-2025学年统编版道德与法治八年级下册 (1).pptx
- 1.2治国安邦的总章程 课件 --2025年八年级道德与法治下册 (统编版).pptx
- 2.1 坚持依宪治国 课件 --2025年八年级道德与法治下册 (统编版).pptx
- 2020-2023年全国中学生生物学联赛试题及详细解析.doc
- 2025年执业医师考前密押卷.docx
- 军队文职必备知识点-医学类-医学基础必背考点.docx
- 2022年国家公务员考试《行测》真题(副省级)【真题】.docx
文档评论(0)