zoukankan      html  css  js  c++  java
  • Delphi面向对象的可见性表示符

      Delphi能通过在声明域和方法的时候用protected、private、public、published和automated指示符来对对象提供进一步的控制。使用这些关键字的语法如下

    TSomeObject = class
    private
        APrivateVariable: Integer;
        AnotherPrivateVariable: Boolean;
    protected
        procedure AProtectedProcedure;
        function ProtectMe: Byte;
    public
        constructor APublicContructor;
        destructor APublicKiller;
    published
        property AProperty read AprivateVariable write APrivateVariable;
    end;
    

      在每一个指示符下呢个声明人一多个方法和域。书写是要注意缩进格式。下面是这些指示符的含义:

    1)private

      对象中的这部分只能被相同单元的代码访问。用这个指示符对用户隐藏实现的细节,并组织用户直接修改对象中的敏感部分

    2)protected

      对象中的这部分成员只能被它的派生类访问,这样不仅能使对象向用户隐藏实现的细节,并未对象的派生类提供了最大的灵活性

    3)public

      这部分的域和方法能在程序额任何地方访问,对象的构造器和析构方法通常应该是public

    4)published

      对象的这部分将产生运行期类型信息(RTTI),并使程序的其他部分能访问这部分。Object Inspector用RTTI来产生属性的列表

    5)automated

      这个指示符其实已经不用了,保留这个指示符的目的是为了与Delphi 2.0的代码兼容

      下面的代码是以前介绍过得TMyObject对象,其中通过增加指示符提高了对象的完整性:

    TMyObject = class
    private
        SomeValue: Integer;
        procedure SetSomeValue(AValue: Integer);
    published
        property Value: Integer read SomeValue write SetSomeValue;
    end;
    
    procedure TMyObject.SetSomeValue(AValue: Integer);
    begin
        if SomeValue<>AValue then
            SomeValue:= AValue;
    end;    
    

      

      现在,对象的用户不能直接修改 S o m e Va l u e的值了,要修改对象的数据就必须通过 Va l u e属性来实现。

  • 相关阅读:
    Win32 DPAPI加密编程
    .NET环境下的DPAPI加密编程
    Windows加密API的功能分类
    Windows加密API的层次
    Windows加密服务架构
    简单H5单页面真机调试
    vue中使用动画vue-particles
    particular.js
    sublime快捷键
    判断内核
  • 原文地址:https://www.cnblogs.com/xumenger/p/4434353.html
Copyright © 2011-2022 走看看