面向对象程序设计语言C第01章引论.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
cwy@uestc.edu.cnB1-513 1.4.2 面向对象与软件IC 类概念支持 “软件 IC” 技术 在面向对象语言中,类充当了系统构造的单元 类是一类对象的统一模板,它具有很强的模块性、独立性和可靠性 类是对象一级的抽象,它将一类对象的数据结构和功能实现封装起来,使得不必清楚其内部实现,只要了解功能接口就可以使用它。 类支持代码共享,这也支持了可重用性。 因此类作为 “软件 IC” 来组织软件系统从概念上是非常合适的。 1.4.3 面向对象方法与结构化程序设计方法 结构程序设计强调了功能抽象和模块性,解决问题的过程看作是处理过程。 面向对象程序设计则综合了功能抽象和数据抽象,它将解决问题的过程看作是一个分类演绎的过程。 1.4.4 对象是抽象数据类型的实现 抽象是一个系统的简化描述,它强调了系统的某些特性而忽略了其他特性。对于用户来说,所关心的是程序能做什么,而不是它的实现细节。 抽象可以用来对用户所关心的重要信息予以强调,而忽略不重要的信息。 整个程序设计语言(甚至软件开发)的发展过程就是抽象层次不断提高的过程。 1.4.4 对象是抽象数据类型的实现 为了不涉及对象的物理表示和操作实现的细节,采用抽象数据类型的描述技术。 抽象数据类型包含的信息有: 外部不可见的数据 外部不可见的操作的实现细节 外部可见的施于数据上的各操作界面(接口) 将数据类型抽象为提供给外部世界的数据和操作集。使用了抽象数据类型描述,不再关心数据结构是什么,而仅仅关心它具有些什么功能可用。符合信息隐藏原则。 抽象数据类型描述的信息与对象包含的信息是一致的,对象是抽象数据类型的实现 面向对象的概念和方法是当前软件开发中最接近问题的一种较好方法,仍具有强大的生命力。 面向对象的研究还不成熟,不能指望面向对象的概念能解决软件复杂性的问题, 采用面向对象的思想,从可重用性、可扩充性和可兼容性的角度,组织和开发软件是非常必要的,这也是一种良好的选择。 第一章 引论 1.2 面向对象语言的核心概念 1.2.2 继承 Inheritance 要注意区分:is part of 和 is kind of (is kind of 才是继承的概念) Kind of Butterfly is a kind of insect. Part of Wheels are part of a car. Wheel is not a kind of car. * 第一章 引论 1.2 面向对象语言的核心概念 1.2.3 多态性 Poly-morphism 多态,是指一个名字(或符号)具有多种含义。 用户在使用函数编程时,关心的是该函数的功能及其使用接口,并不需要了解该函数的使用接口与函数的哪一种实现方法相匹配(binding)。 在设计这一级上,只关心“施加在对象上的动作是什么”,而不必牵涉“如何实现这个动作”以及“实现这个动作有多少种方法”的细节。 * 第一章 引论 1.2 面向对象语言的核心概念 1.2.3 多态性 Poly-morphism 函数重载 在面向对象的语言中,函数重载(overload)表达了最简单的多态性(同名函数)。 void value(int); Int value( ); * 第一章 引论 1.2 面向对象语言的核心概念 1.2.3 多态性 Poly-morphism 运算符重载 运算符重载指的是相同的运算符在不同的上下文有不同的解释。例如:两个整数使用+运算符表示它们要做加法,而两个字符串可以使用+运算符则表示串连接。 C++为运算符重载提供了完整的语法支持。 * 第一章 引论 1.2 面向对象语言的核心概念 1.2.3 多态性 Poly-morphism 如果函数调用(接口)与哪个函数实现相匹配是在编译时完成的,称为早期匹配或静态联编。 如果匹配是在运行时确定的,则称为后期匹配或动态联编。 C++的虚函数提供了后期匹配带来的良好特性。 * 第一章 引论 1.3 按对象方式思维 面向对象是一种仿真技术,面向对象设计产生一种与现实具有自然关系的软件系统。 面向过程的程序设计方法鼓励全局地看问题,强调系统功能的逐步细化。而在面向对象程序设计中,每个对象严格地是局部的。每个对象管理自己的实现。 学习面向对象设计,需要将思维方式从全局转到局部,在局部中发现对象。 * 第一章 引论 1.3 按对象方式思维 设计对象需要做许多小决策,怎样将计算部分合理地分配给不同的对象。这叫做分散责任。 这是设计决策的基础,其余都是次要的。CRC方法帮助设计者分散责任,直到设计的最后阶段才考虑问题的总体。 * 第一章 引论 1.3 按对象方式

文档评论(0)

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

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

1亿VIP精品文档

相关文档