软件工程 (第二版)第9章面向对象基础.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 面向对象基础 9.1 面向对象程序设计语言的发展 9.1.1 Simula语言 Simula是在1967年由挪威的奥斯陆大学和挪威计算机中心的Johen Dahl和Nygard设计的,当时取名为Simula 67。这个名字反映了它是以前的一个仿真语言Simula的延续。 然而,Simula 67是一种真正的多功能程序设计语言,仿真只不过是其中的一个应用而已。 Simula是在ALGOL 60的基础上扩充了一些面向对象的概念而形成的一种语言,它的基本控制结构与ALGOL相同,基本数据类型也是从ALGOL 60照搬过来的。一个可执行的Simula程序由包含多个程序单元(例程和类)的主程序组成,还支持以类为单位的有限形式的分块编译。 Simula语言中引入了类、子类的概念,提供继承机制,也支持多态机制,还提供了协同例程,它模仿操作系统或实时软件系统中的并行进程概念。在Simula中,协同例程通过类的实例来表示。Simula还包含对离散事件进行仿真的一整套原语,仿真是面向对象技术的应用中最直接受益的一个主要领域。Simula通过一个类SIMULATION来支持仿真概念,该类可作为其他任何类的父类,该类的任何子类称为仿真类。 Simula是一种混合型的面向对象程序设计语言,它开创了面向对象思想的先河,具有特殊的贡献,它仍然具有活力,还拥有一定范围内的一批热心支持者。目前在许多公司的不同硬件环境中都装有Simula语言的编译器,这些公司大多数是挪威和瑞典的公司。 9.1.2 Smalltalk语言 Smalltalk的思想是1972年由Alan Kay在犹他大学提出的,后来当一个专门从事图形工作的研究小组得到Simula编译程序时,便认为这些概念可直接应用到他们的图形工作中。当Kay后来加入到Xerox研究中心后,他使用同样的原理作为一个高级个人计算机环境的基础。Smalltalk先是演变为Smalltalk 76,然后是Smalltalk 80。 Smalltalk是一种纯面向对象程序设计语言,它强调对象概念的归一性,引入了类、子类、方法、消息和实例等概念术语,应用了单继承性和动态联编,成为面向对象程序设计语言发展中一个引人注目的里程碑。 在Smalltalk 80中,除了对象之外,没有其他形式的数据,对一个对象的唯一操作就是向它发送消息。在该语言中,类被看成是对象,类是元素的实例,它全面支持面向对象的概念,任何操作都以消息传递的方式进行。 Smalltalk是一种弱类型语言,程序中不作变量类型说明,系统也不作类型检查。它的虚拟机和虚拟象实现策略,使得数据和操作有统一的表示,即bytecode。它有利于移植和向面向对象数据库的演变,它有较强的动态存储管理功能,包括垃圾收集。 Smalltalk不仅是一种程序设计语言,它还是一种程序设计环境。该环境包括硬件和操作系统涉及的许多方面,这是Smalltalk最有意义的贡献之一,它引入了用户界面的程序设计工具和类库:多窗口、图符、正文和图形的统一、下拉式菜单、使用鼠标定位、选择设备等。它们都是用类和对象实现的,在这些工具支持下,程序中的类、消息和方法的实现都可以在不同窗口中联机地设计、实现、浏览和调试。在Smalltalk环境中,这些界面技术与面向对象程序设计技术融合在一起,使得面向对象程序设计中的“对象”对广大使用者来说是可见的,并且是具有实质内容的东西。 Smalltalk的弱点是不支持强类型,执行效率不高,这是由该语言是解释执行bytecode和查找对象表为主的动态联编所带来的。 9.1.3 Eiffel语言 Eiffel是20世纪80年代后期由ISE公司的B.Meyer等人开发的,它是继Smalltalk 80之后又一个纯面向对象的程序设计语言。它的主要特点是全面的静态类型化、全面支持面向对象的概念、支持动态联编、支持多重继承和具有再命名机制可解决多重继承中的同名冲突问题。 Eiffel还设置了一些机制来保证程序的质量。对一个方法可以附加前置条件和后置条件,以便对这个方法调用前后的状态进行检查,若这样的断言检查出了运行错误,而该方法又定义了关于异常处理的子句,则自动转向异常处理。可以对一个类附加类不变量的断言,以便对类的所有实例进行满足给定约束的检查。 Eiffel还支持大量的开发工具,如垃圾收集、类库、图形化的浏览程序、语法制导编辑器和配置管理工具等。它在许多方面克服了Smalltalk 80中存在的问题,因此在面向对象程序设计语言中有较高的地位,Eiffel产品数目(1992年)仅次于C++而列居第二。 9.1.4 C++语言 C++是一种混合型的面向对象的强类型语言,由A

文档评论(0)

autohhh + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档