zoukankan      html  css  js  c++  java
  • 深入类中的方法[5] - 静态方法、类方法、静态类方法

    //静态方法是默认的, 如果不是虚方法或纯虚方法, 那它就是一个静态方法.
    
    
    
    
    

     //类方法就是通过类名就可以访问的方法
    
    unit Unit1;
    
    interface
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    
      Dialogs, StdCtrls;
    type
      TForm1 = class(TForm)
    
        Button1: TButton;
    
        Button2: TButton;
    
        procedure Button1Click(Sender: TObject);
    
        procedure Button2Click(Sender: TObject);
    
      end
    
    {类方法示例:}
    
    TMyClass = class(TObject)
    
      class procedure alert(s: string); {类方法只是比静态方法多了一个 class 指示字}
    
    end;
    
    {
    
      类方法不能在 private  protected ;
    
      类方法不能是虚方法;
    
      类方法只能使用类中的、在对象实例化以前的数据.
    
    }
    
    var
    
      Form1: TForm1; 
    
    implementation
    
    {$R *.dfm}
    
     
    
    { TMyClass }
    
    class procedure TMyClass.alert(s: string);
    
    begin
    
      ShowMessage(s);
    
    end
    
    {类方法可以直接使用}
    
    procedure TForm1.Button1Click(Sender: TObject);
    
    begin
    
      TMyClass.alert('万一'); {万一}
    
    end;
    
     
    
    {类的对象当然也能使用}
    
    procedure TForm1.Button2Click(Sender: TObject);
    
    var
    
      MyClass: TMyClass;
    
    begin
    
      MyClass := TMyClass.Create;
    
      MyClass.alert('万一');  {万一}
    
      MyClass.Free;
    
    end;
    
     
    
    end.
    
    
    
    
    

     
    
     
    
    //静态类方法 
    
    {现在的 Delphi 不仅仅有类方法, 同时有: 
    
      类变量: class var
    
      类常量: class const
    
      类类型: class type
    
      类属性: class property 
    
      静态类方法就是给类属性来调用的, 它可以存在与私有区(private), 
    
      譬如下面的 SetName 就是一个静态类方法:
    
    }
    
    TMyClass = class(TObject)
    
      private
    
        class var FName: string;
    
        class procedure SetName(const Value: string); static; {静态类方法又多了一个 static 指示字}
    
      published
    
      class property Name: string read FName write SetName;
    
    end;
    

     

  • 相关阅读:
    测试学习使用
    Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules
    web框架之Spring-MVC环境搭建
    serialVersionUID
    在eclipse中部署发布web项目 和 更改eclipseweb项目发布的路径
    servlet HttpSession 监听器
    java web 中的转发和重定向
    Spring MVC 中的 forward 和 redirect
    各个部门英语标识
    添加滚动条,内容多时显示,内容少时隐藏
  • 原文地址:https://www.cnblogs.com/luckForever/p/7255029.html
Copyright © 2011-2022 走看看