1.1 面向对象程序设计概述
1.1.1 面向对象程序设计的定义
面向对象程序设计(Object-Oriented Programming,OOP)是一种新的程序设计范型。程序设计范型是指设计程序的规范、模型和风格,它是一类程序设计语言的基础。一种程序设计范型体现了一类语言的主要特征,这些特征能用以支持应用领域所希望的设计风格。不同的程序设计范型有不同的程序设计技术和方法。
面向过程程序设计范型是使用较广泛的程序设计范型,这种范型的主要特征是:程序由过程定义和过程调用组成(简单地说,过程就是程序执行某项操作的一段代码,函数是最常用的过程)。从这个意义出发,基于面向过程的程序可以用下面的公式来表述:
程序=过程+调用
基于面向过程程序设计范型的语言称为面向过程性语言,如C、Pascal、FORTRAN、Ada等都是典型的面向过程性语言。除面向过程程序设计范型外,还有许多其他程序设计范型。例如,函数式程序设计范型也是较为流行的程序设计范型,它的主要特征是:程序被看作“描述输入与输出之间关系”的数学函数,LISP是支持这种范型的典型语言。此外,还有模块程序设计范型(典型语言是Modula)、逻辑式程序设计范型(典型语言是PROLOG)、进程式程序设计范型、类型系统程序设计范型、事件程序设计范型、数据流程序设计范型等。
面向对象程序设计是一种新的程序设计范型。这种范型的主要特征是:
程序=对象+消息
面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一,程序一般由类的定义和类的使用两部分组成;第二,程序中的一切操作都是通过向对象发送消息来实现的,对象接收到消息后,启动有关方法完成相应的操作。一个程序中涉及的类,可以由程序设计者自己定义,也可以使用现成的类(包括类库中为用户提供的类和他人已构建好的类)。尽量使用现成的类,是面向对象程序设计范型所倡导的程序设计风格。
需要说明的是:某一种程序设计语言不一定与一种程序设计范型相对应。实际上存在具备两种或多种范型特征的程序设计语言,即混合型语言。例如,C++就不是纯粹的面向对象程序设计范型的语言,而是具有面向过程程序设计范型和面向对象程序设计范型的混合型程序设计语言。