zoukankan      html  css  js  c++  java
  • delphi中的域

    对于对象来说,一个域就象一个变量。域可以是任何类型,包括类类型。(也就是说,域可以保存对象引用。)域通常是私有的。
    要定义类的域成员,只需简单地象声明变量那样声明域。所有的域声明必需出现在任何属性或方法声明之前。例如,下面的声明创建了一个叫做TNumber的类,该类中除继承自TObject的方法之外,仅有一个叫做Int的整数域成员。
    type TNumber = class
      Int: Integer;
    end;
    域的范围是静态的,即编译时对域的引用是固定的。要明白这一含义,考虑如下代码:
    Type TAncestor = class
        Value: Integer;
      end;
    TDescendant = class(TAncestor)
        Value: string;  //隐藏了继承得到的Value域
      end;
    var
      MyObject: TAncestor;
    begin
      MyObject := TDescendant.Create;
      MyObject.Value := 'Hello!';  //错误
      TDescendant(MyObject).Value := 'Hello!';  //正常工作
    end;
    尽管MyObject保存了TDescendant的一个实例,它声明为TAncestor,但编译器仍将MyObject.Value解释为对TAncestor中声明的整数域的引用。不过,在TDescendant实例对象中仍然存在两个域,只是继承得到的Value域被新的域隐藏而已,可以通过类型转换访问前者。

  • 相关阅读:
    开启LOH压缩?
    搭建Hadoop2.6.4伪分布式
    EntityFramework CodeFirst SQLServer转Oracle踩坑笔记
    glob模式
    在Oracle中使用Entity Framework 6 CodeFirst
    IE9,10中console对象的bug
    ViewBag是如何实现的
    esbuild vs webpack
    企业微信公众号本地调试auto2.0
    vmware15.5的解锁mac系统插件
  • 原文地址:https://www.cnblogs.com/IceKernel/p/2270103.html
Copyright © 2011-2022 走看看