面向对象系统分析与设计_大学计算机科学与技术学院.pptVIP

面向对象系统分析与设计_大学计算机科学与技术学院.ppt

  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文档。上传文档
查看更多
数据类型是不同形式的信息在内存中分配方式的基本约定,是构造程序的基础。 每种程序设计语言中都定义了自己的基本数据类型集合和利用基本数据类型定义的扩展数据类型。 常量、变量甚至函数都有自己的数据类型。 C语言等结构化程序设计语言还为用户提供了自定义数据类型的手段。 从抽象数据类型的观点看类和对象 一个数据类型的定义包括一个值集和一个作用于该值集的操作集。 如C语言中的int型(整型), 其值集为A={ n| n∈N, -32768≤n≤+32767 }, 其操作集是加、减、乘、整除、取模等等。 面向对象语言中的类是一种新的用户自定义数据类型—“类”类型。 类的所有数据成员形成类类型的值集,类的所有方法成员形成类类型的操作集。 以这个观点来看,对象就是“类类型”的一个实例,通常以变量的形式出现。 如果定义了一个类名为book的类,则创建book类的对象b1, b2的语法形式: book b1, b2; 和声明基本数据类型变量的语法形式: int a, b; double x; 完全一样。可以像使用整型变量a、b,双精度型变量x一样使用book型变量b1、b2。 类类型能像内部数据类型一样工作。区别在于程序员定义的类是为了描述具体问题,模拟问题空间中的对象。实际上,程序员通过增添自己所需要的新类对程序设计语言本身进行了扩展。 对象中所包含的方法实际上就是过程或函数,方法一定属于某个特定类的对象,是实现对象功能算法的代码块。 在编写方法实现代码时仍应遵循结构化的原则,使用单入口单出口的几种基本控制结构。 关于“方法” 在结构化程序设计中,过程是由使用者显式调用的独立实体,对于相同的输入参数,每次过程调用有相同的结果。 而在面向对象程序计中,过程作为对象的方法,不再是独立存在的实体,而是对象功能的体现。这使得对象可以理解为一台自动机。对象的私有数据可以看作自动机的状态。对象的状态只能由对象的方法改变。 对象状态的改变是通过向对象发送消息来实现的。所谓发送消息,就是从对象外部调用对象的公有方法。 发送消息不同于一般的过程调用,发送消息只是触发自动机,同样的输入参数时,可能因为自动机状态不同而有不同的输出结果。 1. 3 类的基本特性 1.3.1 封装性 (Encapsulate) ? 类的三大基本特性: 封装性、继承性和多态性 类是数据成员和方法成员的封装体。封装不仅仅是将数据和方法这两种不同的语言成分捆绑在一起,它还具有数据隐藏的机制。 数据隐藏是通过限制数据的访问权限实现的。一个类中的数据通常被声明为私有的。不允许从类的外部直接访问。 封装和数据隐藏不仅防止了数据从外部破坏的可能性,更保证了对象对于其边界以外的外部世界作为一个自足的、透明的实体存在。 引入对象的封装机制的目的是将对象的使用者和设计者区分开来。 类的公有方法是对象向对象的使用者开放的接口(Interface)。 从对象与其外部世界的关系来看,对象是一个在系统中负有一定责任的服务器。 外部世界的事件,如人机交互、其它对象的状态改变等等,可以看作请求对象服务的客户。 对象通过公有方法,向外部声明自己提供哪些服务,每个方法的参数说明了怎样使用这些服务。 1.3.2 继承性 (Inheritance) ? 人类对于客观事物的认识过程是没有止境的。在分类问题上也是这样,随着认识水平的提高,原有的类需要划分成若干个子类,子类又可以划分子类的子类,…。这种划分最终形成一个树状层次体系结构。 面向对象程序设计中通过类的继承性,能够很好地模拟这种分类方式。 面向对象中类的继承性描述两个类之间的一种特殊关系,即上面所说的“父-子关系”。面向对象语言中允许利用一个已定义的类来定义一个新类,通过这种利用,形成两个类之间的继承关系。这个已定义的类称为基类,新定义的类则称为它的子类。子类除了包含基类的所有成员之外,又增加了自己特有的新成员。 特殊类 一般类 一般类 特殊类 (b)类的特征集合 (a)类的实例集合 图 1.2 一般类与特殊类的关系 在由一个类划分出子类的过程中,子类必须具有其父类的所有特征,同时又具有父类中其它成员所没有的新特征。从成员集合来看,父类包含了子类的所有成员。从各自信息量的多少来看,有“子大于父”的特点,因为要描述一个子类,必须添加有别于父类中其它成员的新的信息。类间的这种“父子关系”反映了类的一般性和特殊性,也称为“一般-特殊关系”。 子类定义的伪代码形式如下: 新类声明:子类名1 继承自: 基类名1 { 数据成员; … 方法成员; … } 子类对象在

文档评论(0)

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

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

1亿VIP精品文档

相关文档