类与对象
从用户角度考虑,用户并不需要了解面向对象编程的知识,就可编写Delphi应用程序。当用户在建立新窗体、添加新组件以及处理事件时,大部分相关代码会由Delphi自动产生。但是,知道语言及其细节,对理解Delphi正在做什么并完全掌握它是很有帮助的。特别是有关类的概念及用法是后面学习组件编程以及Delphi深入编程的基础。
类和对象是两个常用的术语,然而经常容易混淆,因此须要区分它们的定义。
类
类与前面介绍的记录类似,也是包含有各种域的结构化数据类型,然而,类包含方法。方法就是操纵对象域数据的过程或函数。类类型把数据和方法封装在一起。
一个类是一个数据类型。类就像记录一样,是一种数据结构。按最简单的理解,可以将类理解成一个记录。但实际上,类是一种定义不确切的术语,它常用来定义抽象的事务,是构成应用程序的项目,其内涵远比记录要丰富。在本书中,类经常可以被理解为可视化组件,如按钮、标签、表等。
了解类,最关键的是掌握类的特性。一个类,其最突出的特征有3个:封装性、继承性、多态性。
(1)封装性
对类最基本的理解是,类把数据和代码组合在同一个结构中,这就是类的封装性。将类的数据域封闭在类的内部,使得外部程序必须使用正确的方法才能对要读写的数据域进行访问。封装性意味着数据和代码一起出现在同一结构中,只有用类的方法才能接触到内部的私有数据。
(2)继承性
继承性的含义直接而且显然,它是指把一个新的类定义成已存在类的后代。新类通过继承得到了旧类的一切东西。在往新类中添加任何新内容以前,父类的每一个属性和方法都已存在于子类中,父类是创建子类的基石。
(3)多态性
多态性是在类体系中把设想和实现分开的手段。如果说继承性是系统的布局手段,那么多态性就是实现其功能的方法。多态性意味着同样的动作可以由多种方式来实现,这取决于执行该动作的类。多态性允许以类似的方式处理类体系中类似的类。根据特定的任务,一个应用程序被分解成许多类,多态性把高级设计处理的设想,如新类的创建、类在屏幕上的显示、程序运行的其他抽象描述等,留给知道该如何处理它们的类去实现。
在Object Pascal中,声明类类型使用保留字Class。类类型可以指定一个祖先类型,表示该类型是从这个指定的祖先类型继承下来的,例如:
Type
TMyObject=Class(TObject)
上例声明了一个名叫TMyObject的类类型,该类型是从类TObject继承下来的。注意,类类型的标识符一般以“T”打头,以区别于其他数据类型。另外,在Delphi中,大量的构造数据类型都是以“T”打头的。如果不指明祖先类,Delphi默认该类继承自TObject类。
对象
对象是类的实例(instance),即由类定义的数据类型的变量。对象是实体,当程序运行时,对象占用一些内存。对象与类的关系就像变量与类型的关系。
例如,针对上文声明的类TMyObject,可以声明它的一个实例:
var
Aobject : TMyObject;
然后通过Aobject.属性或Aobject.方法就可以实现对这个对象的属性或方法的访问。
Object Pascal的语句分为两类:简单语句和构造语句
面向对象的编程语言基于3个基本概念:类、继承及多态。类就像记录一样,是一种数据结构
版权声明:本文为博主原创文章,未经博主允许不得转载。