• 初探Object Pascal的类(十一)


    类关键字:is和as

    Object Pascal有两个特定的用于类的操作符:

    is操作符

    is操作符用来确定一个类是否具有一种特定的类型。再回到TAirplaneTMilitaryPlane类例子中,假设现有一个类的实例叫Plane,此类可能是TAirplane类的实例,也可能是TMilitaryPlane类的实例,或者也可能是一个完全不同的类型。在这种情况下,就可用is操作符来确定。例如:

    var
      Plane: TMilitaryPlane;
    begin
      Plane := TMilitaryPlane.Create('TWD 779', 0);
      if Plane is TMilitaryPlane then     { True}
        Writeln('True')
      else
        Writeln('False');
      Plane.Free;

    is操作符返回一个布尔值,若此变量具备了所需求的类型,is返回True,如果此变量不具备所要求的类型,is返回False,若所需要的类型时此变量的祖先类,那么is操作符也返回True

    例如,由于TMilitaryPlane是从TAirplane派生的,因此下面的结果也是True

    var
      Plane: TMilitaryPlane;
    begin
      Plane := TMilitaryPlane.Create('TWD 779', 0);
      if Plane is TAirplane then     { True}
        Writeln('True')
      else
        Writeln('False');
      Plane.Free;

    Note

    由于所有的类都是由TObject派生,因此下列结果总是True:

      if AnyClass is TObject then
        DoSomething;

    as操作符

    is操作符没有as操作符用的多,as操作符是用来把一个指针强制指向一个特定类的类型,具体如下:

      with Plane as TMilitaryPlane do
        DoSomething;

    as操作符通常与with操作符连用。在这个例子中,Plane变量是一个指针,此指针可以是TAirplane类、TMilitaryPlane类或者两者之外的某个类的实例。as操作符用来把此指针强制指向TMilitaryPlane类,然后调用DoSomething代码。若Plane变量不是TMilitaryPlane类的实例(或者不是它祖先类的一个实例),那么这种转换就会失败。否则则成功,并将调用DoSomething代码。

    至此,我们已经学习了有关Object Pascal中类的内容,一个设计完美的类很容易使用,并且节省很多程序编写时间,甚至可以说,用一个设计完美的类是一种享受——尤其当此类是自己创建的。

    初探Object Pascal的类到此为止,接下来回过头去好好掌握这些知识,这对以后进一步学习的知识是非常重要的。

  • 相关阅读:
    linux中fork()函数详解
    并发和并行有什么区别?
    利用bochs调试Linux 0.11内核
    [调整] Firemonkey iOS 原生 Edit 透明框, 改变框色
    [修正] Firemonkey Windows 控件有虚线残影问题
    [示例] Firemonkey 图片按钮(3态)
    [示例] Firemonkey 不规则按钮实做
    [函数] Delphi FMX Windows 取得下载 Downloads 目录
    [工具] Firemonkey Style 调色工具(可另存 Style 文件)
    [教学] Delphi Berlin 10.1 开发 Windows 10 平板 App 远程调试
  • 原文地址:https://www.cnblogs.com/pchmonster/p/2308148.html
Copyright © 2020-2023  润新知