- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
新员工培训面向对象基本概念.ppt
面向对象基本概念 总体设计部 石宏峰 2004.02 面向对象概述 开篇语 复杂性是软件系统本质的一部分。没有什么抽象处理能够消除软件系统的复杂性,然而,能够生成一种机制来管理这些复杂性。并且,有些困难不是“偶然的”,是软件建造的方法所引起的。改变建造软件的方式将改善这些所谓“偶然的”困难。 造成软件复杂性的主因 软件开发工作的现状: 软件越来越庞大,各软件组件之间的互联很复杂 软件开发由个人的创造性活动转变为有组织的团队活动,交流协调工作加剧 面向对象(Object-Orientation) 面向对象的概念最初是在上个世纪60年代后期由使用SIMULA语言的研究人员提出 真正的面向对象程序设计是在Smalltalk语言中实现的,“面向对象”这个词也是Smalltalk首先提出的 面向对象方法学认为: 客观世界由各种“对象”所组成,任何事物都是对象 每一个对象都有自己的运动规律和内部状态 不同对象的组合及相互作用就构成了我们要研究、分析和构造的客观系统 OO方法与结构化方法差异(1) 结构化方法:将一个系统化分为两部分:数据(使用数据模型建模)和功能(使用过程模型建模)。导致数据与设计模型和系统实现(即程序)中的行为分离。 OO方法:将系统定义为一组正在交互的对象。对象可以完成一些事情(功能),也知道一些事情(数据)。 OO方法与结构化方法差异(2) 面向对象的软件系统构造 面向对象方法 很多程序员将面向对象编程(OOP)技术和面向对象(OO)技术混淆 面向对象不仅是一种技术,面向对象技术是一门博大精深的学问,它是一种方法论或者说是一种世界观 人们对面向对象方法的研究与运用,不再局限于编程阶段,而是从系统分析和系统设计阶段就开始采用面向对象方法 面向对象方法已经发展成一种完整的方法论和系统化的思想体系 面向对象不仅适用于软件设计开发,也适用于解决硬件、组织结构、商业模型等多种领域的问题 “练器”与“练气” 会使用面向对象的编程工具并不等于就掌握了面向对象的思想和方法 程序设计语言仅仅提供一个方法学的表示,而真正的方法是从生活、工作、学习等中提升而来的,这个也真是程序设计语言所做不到的 有人即使选择了面向对象的利器,也无法成为真正的高手。因为他看重的是“器”的好坏,忽略的是“气”的修炼 掌握面向对象的思想如同获得练气的真谛,它的重要性往往胜过了对编程语言的选择 练器虽易,但难成高手。练气虽好,但见效缓慢。内外兼修,终成正果 面向对象基本概念 总述 对象 类 实例 类的基本关系(继承、关联、聚合) 接口 封装 多态性 对象(Object) 对象指的是一个独立的、异步的、并发的实体,它能“理解一些事情”(即存储数据)、“做一些工作”(即提供服务),并“与其它对象协同”(通过交换消息) 对象是对问题域中某个实体(任何有明确边界和意义的东西包括具体的物理实体和人为的概念)的抽象 软件系统中的对象 对象是一个接收和发送消息的黑盒子 对象包含编码(CODE)和数据(DATA) CODE是一段有序的计算机指令,决定对象的行为 DATA是指令要操作的信息,即对象的内容 CODE与DATA在对象内部是分离的 对象是数据结构及其上的操作的封装体 类(Class) 相似对象(具有相同属性和行为)的一种分类 是一张制造对象的蓝图,对象通过类来定义。 实例(Instance) 实例:按照类“样板”建立的具体对象,就是实例。实例是一个具体的对象(“对象”这个术语有泛指的含义) 实例化:创建对象的过程 类、实例与对象的联系与区别 类是一个模板、蓝图 实例和对象都是根据类模板创造出来的 实例指的是一个具体的实例 对象是泛指实例,并不指出是哪个具体的实例 类关系——继承(1) (inheritance) 继承:表示两个类之间是“is a”、“is like ”或“is kind of”的关系 子类(subclass):如果类B继承自类A,B就是A的子类 父类(superclass):如果类B继承自类A, A 就是B的父类 类关系——继承(2) 单继承(single inheritance):一个类仅从另外一个类中继承 多重继承(multiple inheritance):一个类从另外的一个以上的类中继承 覆盖(override):在子类中重新定义属性和方法 抽象类(abstract class):不能实例化的类 类关系—— 关联(1) (association) 关联:一个类知道(knows)另一个类 类关系—— 关联(2) 双向关联:两个类互相知道 类关系—— 聚合 (aggregation) 聚合:是一种特殊的关联。表示两个类之间是is part of 的关联。 接口(1)(interface) 接口好比一种模板,这种模板定
文档评论(0)