TSL语言基础 > Object TSL

属性    

  • 属性是这样的成员:它们提供灵活的机制来读取、编写或计算私有字段的值。可以像使用公共数据成员一样使用属性,但实际上它们是称作“访问器”的特殊方法。这使得可以轻松访问数据,此外还有助于提高方法的安全性和灵活性。
    语法:
    Property PropertyName read fieldOrMethod write fieldOrMethod

    关键字 Property 关键字表示开始声明了一个属性;
    PropertyName 是自定义合法的属性名 ;
    每个属性至少有一个读限定符或一个写限定符,或两者都有,它们称为访问限定符,具有以下的格式:
    read fieldOrMethod
    write fieldOrMethod

    在TSL.INI支持,一旦设定该选项为1,则任何域的property都可被访问,无论是public还是protected,private。默认情况下这种违反规则是不被允许的。
    [Compatible]
    PrivatePropertyAccess=1

    1 属性可以具有Private,Protected或public可见性,默认为public.
    2 如果单有读限定符,表示属性只读;如果单有写限定符,表示属性只写。
    3 如果它是在祖先类中声明的,则它对派生类必须是可见的,则fieldOrMethod不能是私有的字段或方法;
     在读限定符中,若fieldOrMethod 是一个方法,它必须是一个不带参数的函数
    4 在写限定符中,若fieldOrMethod 是一个方法,它必须是一个带有单一参的方法,或至少有一个单一参数的重载方法。
    5 属性可以在派生类中给重新定义.
    示例:
    program test;

    Type myDate = Class

      private

    _month ;

    Function SetMonth(value);

    Begin


    if value>0 and value<13 then



    _month:=value;


    End;

      public

    property
    Month read _month write setMonth;



    End;

    Begin

    D:=CreateObject("myDate");

    D.Month:=7;

    Writeln(D.Month);
    End.