1. 面向对象语言 (1) Simula语言 在六十年代后期,随着结构化程序设计的研究,在计算机科学的诸多领域,提出了面向对象的概念。第一个面向对象的语言是六十年代中期开发的Simula,其特征是类的概念。Simula语言的来源是Algol60的面向对象的扩展,但它是作为模拟语言设计的。Simula具有面向对象语言的功能和某些面向对象的方法学。Simula引入了对象的概念,并且在某种意义上使模拟期间的对象可以互相通讯。一个对象包含着数据和操纵这些数据的操作。这些操作称为方法(Methods)。Simula还引入了类(Class)的概念,用类描述一个对象集合的结构和行为。Simula也支持类继承,用继承按层次组织类,允许实现和结构的共享。Simula还区分两种类型的相等:相等和浅相等,反映基于比较的引用(标识)相等和基于对象解释的值(内容)相等。因此,Simula也是一种强类型语言,即每个变量的类型在编译时是已知的。使用强类型的语言,程序运行时不产生类型错,而在编译程序时发现类型错。 (2) Smalltalk语言 70 年代进一步开发了面向对象程序设计语言Smalltalk。Smalltalk有几个版本,如Smalltalk72,74,76,78,80等。但最重要和最稳定的是Smalltalk80。Smalltalk不仅是一种程序设计语言,而且引入了一个完整的程序设计开发环境和一个基于图形的交互式用户界面。 Smalltalk语言引入的面向对象的性能有:类、继承、对象标识和信息隐藏。Smalltalk是非类型化语言,Smalltalk中的变量在说明时不必指定类型,相同程序的相同变量在不同的时间可以具有不同的类型。一个变量的类型由该变量所引用的对象所属的类决定。类好似产生实例的工厂,可以为类实例定义方法并把方法应用到类实例本身。 Smalltalk的面向对象的概念是极为丰富的。Smalltalk中把每件事都看作是一个对象,包括类和基本数据类型(整数、实数等等)。在整个Smalltalk的环境中,程序设计包括给对象传递消息。一个消息可以把一个数加到另一个数上,或可以产生一个类的新实例,或者可以在一个给定的类中引入一个新方法。 (3) 其他面向对象语言 随着面向对象语言的发展,近二十年来先后出现了许多面向对象语言,如C++,是 C 程序设计语言面向对象功能的扩充,扩充的功能包括类定义、通过派生类支持单继承和多继承、通过虚拟函数提供多义性和动态连编。目前C++语言已成为较广泛使用的程序设计语言。此外面向对象语言还有EIFFEL、OBJECT PASCAL等。 |