- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象程序设计01-2.抽象及对象
第1章认识对象 《面向对象程序设计》 认识对象 内容提要 问题的抽象 一切事物皆是对象 面向对象技术概述 C++简介 问题的抽象 以功能为中心的抽象(过程抽象) 以对象为中心的抽象(数据抽象) 问题的抽象 以功能为中心的抽象 以功能为中心的抽象就是用功能的观点来看世界,将现实世界的问题抽象为功能和子功能。 以功能抽象为基础的结构化程序设计,围绕实现“面向过程”的功能来构造系统。其基本原理是采用自顶向下、分而治之、逐步求精的原则,将所要解决的问题按功能分解成许多的子问题,这些子问题可以继续分解,直到分解为一些易于控制且功能独立的模块为止。 问题的抽象 以功能为中心的抽象 用功能抽象的方法构建系统的结构图如图1-1所示。 问题的抽象 面向过程程序设计 一种以功能为中心、基于功能分解的程序设计范型。 一个过程式程序由一些子程序构成,子程序描述了一系列的操作,每个子程序对应一个子功能,它实现了功能抽象。 过程式程序的执行过程体现为一系列的子程序调用。数据处于附属地位,它独立于子程序,在子程序调用时作为参数或全局变量传给子程序使用。 程序 = 函数/算法 + 数据结构 问题的抽象 面向过程程序设计特点 强调功能(算法)实现 大程序分解成函数等小模块 大多数函数共享全局数据 系统中数据可在函数间公开传递 函数加工处理数据,使其形式发生变化 程序设计依据自顶向下原则 问题的抽象 以对象为中心的抽象 以对象为中心的抽象是用对象的观点看世界。将现实世界的问题抽象为离散的、相互通信的对象集合。 这些对象可以看作是一个自治的主体,每个对象都有其静态属性和动态行为,而且每一个对象都是模拟了真实世界中的某个对象。在这里,功能并不是一个独立的存在,而是一个包含在对象内部的相关操作。为完成一个特定的任务,对象之间通过发送消息完成相应的功能。 问题的抽象 以对象为中心的抽象 问题的抽象 面向对象程序设计 一种以对象为中心、以消息驱动对象执行相应操作的程序设计范型。 一个面向对象程序由一些对象构成,对象封装了数据及可施于这些数据上的操作,对象间相互发送消息完成系统功能。 面向对象程序的执行过程体现为各个对象之间相互发送和处理消息。 程序 = 对象/类 + 对象/类+ … 对象/类 = 数据(属性) + 函数(操作) 问题的抽象 面向对象程序设计特点 更关注数据,而不是过程 程序分解成实体对象 设计数据结构表示对象 数据被隐藏在对象中,不可由外部函数访问 作用于对象的函数也放于对象中 对象间通过发送消息(函数调用)通信 程序设计依据自底向上原则 一切事物皆是对象 对象 类 属性、操作、方法 消息 一切事物皆是对象 对象 对象的定义:对象(object)是问题域中一些事物的抽象,是一些属性、操作和方法的封装体,它具有唯一标识。 一个对象至少包括以下几个部分: 有一个和其它对象区分开来的唯一性标识; 有一组属性描述对象静态特征; 有一组功能表达对象动态行为。 一切事物皆是对象 一部移动电话,它是现实世界中的一个实体。它由天线、发射部件、接收部件、显示屏、按键、专用集成电路芯片及外壳组成;它有着其实在的功能,可以打电话,可以发短消息,可以存储、输入和编辑各种个人信息,甚至可以上网。这样一个实体可以在计算机世界中映射为一个计算机可以理解、可以操纵、具有前面所叙述的属性和操作的对象。 一切事物皆是对象 一辆自行车,它由车架、车轮、脚踏和传动机构、变速机构等组成,它具有代步功能,它可以进行变速骑行,刹车,特别要强调的是它有一些特征可以把你的这辆自行车与其他自行车区分开来,其中最重要的是钢印号。这些都可以在面向对象的程序中用对象及其属性和操作模拟出来。 一切事物皆是对象 学生:张三 ??对象标识:对象名student_1 ??对象属性: ?? name= 张三 ?? number?? age = 20 ?? major=Physics ?? ........ ??对象操作: ?? SelectClass(class_math); ?? ....... 一切事物皆是对象 对象 对象之间是通过消息(message)互相进行通信的。消息是从一个对象(发送者)向另一个或几个其他对象(接收者)发送信号,或由一个对象(发送者或调用者)调用另一个对象(接收者)的操作。 对象在通信时,无须知道对方数据或操作的细节,只要知道交互的消息类型就够了。 一切事物皆是对象 对象 对象是有生命的,每个对象都有自己的生命周期,即从出生(创建)、生长(活动)到灭亡(删除)。 在计算机中,对象的创建是指在计算机内存的程序数据区中为该对象分配一个空间;对象的活动是指对象能自主地运行,并且可以接收消息并加以处理,或通过处理外来消息改变自身状态,对象也可以向其它对象发送
文档评论(0)