• 初探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的类到此为止,接下来回过头去好好掌握这些知识,这对以后进一步学习的知识是非常重要的。

  • 相关阅读:
    告别零码软件
    win+mingw+libxml2试用笔记
    beacon with java 1.7 on fedora
    mininet指令详解
    java Socket完美实例
    gnome3 下 qt 应用极其丑陋的解决方案
    org.apache.log4j Class Level
    Mac如何修改文本文件编码
    unity性能优化相关
    平面图判定
  • 原文地址:https://www.cnblogs.com/pchmonster/p/2308148.html
Copyright © 2020-2023  润新知