WEB开发网
开发学院软件开发Delphi 类和对象 阅读

类和对象

 2006-02-04 13:40:33 来源:WEB开发网   
核心提示: Delphi在很大程度上采用了面向对象的开发思路,所以,类和对象,在采用delphi作为开发工具时,class和对象就显得 尤为重要!对class的明确定义是:对具有相同特征的一类事物所做的归纳,能够成为其他控件的父;在应用程序开发中,一般使用TwinControl的派生类;TwinControl类的常用属性:Bru
 

Delphi在很大程度上采用了面向对象的开发思路,所以,在采用delphi作为开发工具时,class和对象就显得 尤为重要!

对class的明确定义是:对具有相同特征的一类事物所做的归纳。作为一个非常抽象的概念,我们可以对类 这个字举例来理解:在校的学生,虽然每个人都会有不同的情况,还有小学生、中学生、大学生之分,男、 女生之分,但是他们有一个共同点,都处于求学阶段。我们就可以把他们归纳为“学生类”,而每一个学生 就是学生类的对象(有一点需要说明,在很多书中,有实体或者实例这种说法,这里实体或者实例也就是提 到的对象)。

而类的属性指的是类的静态特征,作为上面提到的“学生类”,我们说他具有性别、年龄、学号、班级、学 校名称、各科考试成绩等等特征,而这些,也就是学生类属性。

类的方法即类的动态特征,即属于这一类的事物在接收到某种消息或命令时做出的反应,比如学生上课就是 学生类的一个方法,而这个方法的触发就是上课铃响这一个消息的产生。

类的庞大作用还体现在它的无限继承中。作为上面提到的学生类,我们以教育程度来分,不难看出,还可以 分出大学生类,中学生类,小学生类,而他们比学生类这个范围更具体,学生类所具有的属性他们每一个都 具有。也就是说,他们都是从学生类继承而来,在学生类的基础上更准确的进行了划分。在这儿,学生类作 为父类,大学生类、中学生类、小学生类等作为子类出现。当然,在学生类以上,也有更抽象的类。比如, 人类是所以具有人类特征的归纳,学生类比人类更具体,在这个地方,人类作为父类,学生类作为子类。从 这儿可以看出,我们可以根据我们的需要,定义一个适合我们使用的类而不需要每一个属性、方法都去写出 来,只要简单的继承父类就可以了。(通常所说的派生即是父类对子类的说法:父类派生子类).

VCL类库

delphi面向对象的基础就是类,要真正了解和提高delphi的知识水平,我们有很大的必要弄清楚delphi为我们 提供的vcl(类库)。

Delphi的层次结构如下:

从图中我们可以看出,Tobject是delphi系统中的所有类的祖先类,其他每一个类都是他的字类。 根据上面的 层次关系,我们可以看到delphi中每一个类的继承和派生,对我们使用自定义类是非常必要的。下面主要介 绍部分类:

Tpersistent类:

它由Tobject祖先类直接派生。需要指出的是,Tpersistent类成员都能够进行流的操作(对数据以数据流的形 式传递)

常用方法:

Assign() 一个组件把另一个组件相关的值赋给自己;

AssignTo() 与Assign()相反,在Tpersistent中申明为私有,派生类必须实现他的定义;

Tcomponent类

由Tpersistent类直接派生,它的对象的特性:在设计期间其属性可以由Object inspector来控制,能够拥有其 他组件。

Tcomponent类可派生可视组件和非可视组件,如Tbutton和Tmenu

Tcomponent类常用属性:

Owner:设置或读取组件拥有者;

CompenentCount:读取或设置组件的拥有数目;

ComponentIndex:读取组件在其拥有者列表中的位置(从0开始);

Components:他为一个数组,包含其拥有的组件列表(从0开始); Name:设置和读取组件名称;

Tcomponent类常用方法

Create:构造对象;

Destroy:释放对象;

Getparentcomponent:取得父组件,没有则返回nil;

Hasparent:判断组件是否有父组件;

InsertComponent:增加一个组件,由调用该方法的组件所拥有;

RemoveComponent:删除一个自己拥有的组件;

Findcomponent(str:string):根据给出的组件名查找组件;

Tcontrol类

应用:一般用于可视组件

它的属性包括了本身的位置信息,尺寸信息,外观属性等,如:

Top,Left,Width,Height,Visible,enable,text,caption等;

它引入了标准事件如:

Onclick,OnDblclick,OnmouseDown,OnmouseMove等

需要说明的是,在delphi 中,不能创建它的派生类,只能通过它已经存在的派生类TwinControl和 TgraphicControl派生;

TwinControl类

TwinControl类:标准窗口控件由它派生;

它的对象有窗口句柄(指向对象的指针),能够接受输入焦点,能够成为其他控件的父;

在应用程序开发中,一般使用TwinControl的派生类;

TwinControl类的常用属性:

Brush:用于绘制控件外形;

Controls: 包含控件的所有子控件(值为一个数组);

ControlCount:读取子控件的数目;

Handle:读取TwinControl类对象的句柄;

Showing:设置或读取对象是否可见;

Tabstop:设置用户是否能够用TAB键移动焦点;

Taborder:设置对象在其父列表中的序号(从0开始);

TgraphicControl类

本类控件没有窗口句柄,不能接收输入焦点,同样也不能是其他控件的父;

TcostomControl类:

它的派生类常作为自定义控件的基类

Tags:对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接