传统的结构化编程就是先设计一组函数及解决问题的方法,然后针对问题要处理的数据特征找出相应的数据存储方法,即数据结构。这就是最初Pascal 语言的设计者——Nicholase.Wirth提出的著名公式:程序=算法+数据结构。
这种编程的特征是先从算法入手,然后才考虑数据结构,所以上述公式将算法置于数据结构之前,也就是设计应用程序的步骤顺序要求。使用面向过程方法开发的软件,稳定性、可修改性和可重用性都比较差。
面向对象是当前计算机界关心的重点,它是20世纪90年代软件开发方法的主流。起初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法。当今面向对象的思想已经涉及到软件开发的各个方面。例如,面向对象的分析、面向对象的设计以及常说的面向对象的编程实现。
面向对象编程技术是当今占主导地位的程序设计思想和技术。其思路是将上述的两个“加数”颠倒,编写程序时首先针对问题要处理的数据特征找出相应的数据结构,然后设计解决问题的各种算法,并将数据结构和算法看做一个有机整体——类,而将其中的数据结构和相应的算法看做是这个类的对象和方法,每个对象各尽其职,分别执行一组相关的任务。
面向对象编程更注重于系统整体关系的表示和数据模型技术(把数据结构与算法看做一个独立功能模块),即:程序=数据结构+算法。算法与数据结构是一个整体,一个算法只能针对特定的数据结构,它是对数据结构的访问。面向对象程序设计的思想就是要把算法与数据结构捆绑在一起,因为现实世界中任何对象都具有一定的属性和操作,所以也就总可以用数据结构和算法来全面地描述这个对象。面向对象编程的思想为:程序是由许多对象组成,对象是程序的实体,这个实体包含了对该对象属性的描述(数据结构)和对该对象进行的操作(算法),即:对象=数据结构+算法;程序=对象+对象+……。