存储的一部分,被引进在范例中。还包括重复,选择等特征。许多主流程序还是这种语言。程序范例在程序设计中首次引进了抽象的概念。抽象可以把动作和结果隔离。过程是抽象的表格,完成一些任务或功能。其他部分调用时,只是正确有效的执行,但不清楚过程的执行。
程序范例和ADT:数据抽象使一个数据对象的行为和它的描述或执行相分离。用户无法看到数据的基本操作,执行可以方便的更改而不影响程序的运行。
当我们设计一个算法时,需要一个特定的数据类型执行算法的操作。如果可以定义变量的数据类型,而不影响到实际数据类型的运行,就可以很容易的制订出算法。通过定义数据的用法和操作,假定可以选择任何一种运行,这种定义就叫做抽象数据类型。抽象数据类型的使用使得算法的
设计得到更大的推广,使得我们在算法设计时,注重了算法的全面,而不会拘泥于运行的细节。当算法设计完成时,实际的数据类型被执行。近来,程序语言扩展到支持新的数据类型的定义和提供便利2
给数据抽象。
面向对象的范例:它仍然保留了许多程序范例的特征,过程仍然是计算的主要形式。但是,程序不仅仅是抽象值的运算,在面向对象范例种还有对对象的运算。对象同抽象数据类型很相似,联系着数据和运算。
面向对象范例具有三种主要特性,第一种,压缩,其机制是为了实施数据抽象。第二种,继承。继承允许从已存在的对象中创建新的对象。这个新创建的对象是原对象的具体说明。新对象的不同在于只需要提供方法或数据。当一个对象从另一个对象中被创建或取得时,就说新对象继承了它父对象的方法和数据,并增加了一些新的描述和说明。面向对象的第三种特性是多态。多态可以使不同类型的的对象对相同的信息执行相同的操作。例如,我们有一部分对象它们可以执行一类操作,但是只有在运行时我们才知道对象的类型。面向对象语言包含的机制确保了每一类信息传递给正确的对象。
压缩,继承和多态被认为是面向对象程序的基本特征,所有的面向对象程序语言必须提供这些特征。一般来说,语言通过不同的途径支持这些特征的实现。Smalltalk, C++, Objective-C和 Lisp with CLOS (the Common Lisp Object System)这些程序语言都是面向对象语言的例子,它们都可以提供对
压缩,继承和多态的支持。
构建一个面向对象的程序需要决定解决问题所需的对象。这些对象被用来构建计算,定义软件系统的操作运行。信息的传递是对象间最基本的相互作用机制。信息(从其他的对象或程序)传递给对象,以便通知对象运行下一个操作。对象需要负责维护它所相关的数据的状态。只有对象本身才可以改变它内部的数据值。对象本身可以完全的调用它的子对象。一个对象的执行是一个循环递归的过程,当定义这个对象和方法的初始值是,可以跳出这个循环递归的过程。这时,这个方法和数据所组成的元素可以使用程序语言所提供的基本的构造函数。
学习面向对象范例最重要的一点是如何改变我们思考建造
软件体系的思路。
系统被认为是由多个单一独立的个体组成,其中每个个体只负责对其自身的操作的运行。每一个对象的设置和运行都是自身所包含的。由于对象常常模仿真实世界的个体的概念,因而这样的一个模型推动了软件方面的设计(以及后来的实行)。设计一个系统使用面向对象的范例,从而使得系统的操作和运行更类似于真实世界中所对应的真实个体。
压缩:C++继承了C的发展,并且定义的新的方便的数据类型。一个类就像C的结构,但不同的是同时包括了数据和方法。除此之外,C++还提供了类中各个成员访问权限的不同,以此方便的控制即使是在不同的类,也可以访问类中的成员。
3
重复的调用一个抽象的数据可