532628838
圣骑士
圣骑士
  • 注册日期2011-06-10
  • 发帖数98
  • QQ
  • 火币517枚
  • 粉丝77
  • 关注39
阅读:3324回复:0

delphi类的成员

楼主#
更多 发布于:2011-08-01 17:01
    从类成员的可见性考虑,可以将类的成员分为:私有成员、保护成员、公有成员、发行成员和自动成员;从为外界服务的角度看,可以将类的成员分为:字段成员、方法成员和属性成员。这里介绍后一种分类所属的成员。
    1.字段成员
    字段成员相当于对象中的变量,通常是私有类型的成员。定义一个类的字段成员的语法格式如下:
    type<类类型名>=class(<基类名>)
    <字段成员名>:<类型名>;//可以定义多个字段
    end;
    前面的例子,在ugstudent类中正是定义了私有的department字段和specialty’字段。而在student类中定义了保护的name、number等字段。
    2.方法成员
    函数和过程作为类的方法成员是类的重要组成部分。对一个对象的方法调用将执行相应的函数或过程。方法成员定义的语法格式如下:    i
    procedure<方法成员标识符>[(<参数表>)];
    方法成员调用的方法如下:
    <对象标识符>.<方法成员标识符>[(<参数表>)]
    前面的例子,在ugstudent类中正是定义了一个公有的display方法成员。外部程序中调用它的格式为:stl..display。
    3.属性成员
    属性有点类似于字段,因为属性也是类的数据,不过跟字段不同的是,属性还封装了读写属性的方法。属性可能是Delphi程序员接触得最多的名词之一,因为操纵Delphi的组件主要是通过读写和修改组件的属性来实现的,例如要改变窗体的标题则修改Form的Caption属性,要改变窗体文字的字体则修改Form的Font属性。
    Delphi的属性还有个显著特点就是,属性本身还可以是类类型,例如,Font属性就是‘FFont类型的类。
    (1)定义属性
    要定义属性,必须说明3件事:属性名、属性的数据类型、读写属性值的方法。在类的定义中进行属性定义,属性的定义语法格式是:
    property<属性名>:<类型>
    [read{<属性域l读方法>}]
    [write{<属性域I写方法>}]    。’
    [default<缺省值>]
   属性名指定了属性的名称,类型指明了属性的类型,Delphi允许用户定义属性的类型为除文件类型以外的任何数据类型。read、write、stored、default子句是可选的属性接口(Propertv Inteface),它们称为属性限定符。属性接口指定读写属性的方法。
    (2)访问属性
  \跟访问字段和方法一样,要访问属性也需要加对象限定符,还可以使用With语句开域。跟字段不同的是,属性不能作为变量参数来传递。
    (3)属性限定符
    属性限定符可以有4类,分别是read、write、stored和default~其中read和write限定符用于指定访问属性的方法或字段。
    注意:read和write限定符指定的方法或字段只能在类的private部分定义,保证对属性的访问不会干扰到这些方法的实现,防止不小心破坏数据结构。  read限定符用于指定读取属性的方法或字段,通常是一个不带参数的函数,返回的类型就是属性的类型,并且函数名通常以Get加属性名组成,例如一个读取C aption属性的方法通常命名为GetCaption。    ‘
    write限定符用于指定修改属性的方法,通常是一个与属性同类型的过程,这个参数用于传递属性新的值,并且过程名通常以Set加属性名组成,例如修改Caption属性的方法通常命名为SetC aption。如果没有Write限定符,这时属性就是“只读”的。只读的属性不能被修改。
    stored限定符用于指定一个布尔表达式,通过这个布尔表达式的值来控制属性的存储行为。当表达式的值为False时,不把属性当前的值存到Form文件中(扩展名为DFM),如果表达式的值为True,就首先把属性的当前值跟Default限定符指定的缺省值(如果有)比较,如果相等,就不
存储;如果不等或者没有指定缺省值,就把属性的当前值存到Form文件中。

喜欢0 评分0
游客

返回顶部