• 理解 Delphi 的类(十一) 深入类中的方法[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;
  • 相关阅读:
    JVM 关于对象分配在堆、栈、TLAB的理解
    分布式唯一 ID 生成方案有哪些?
    JVM 栈帧之操作数栈与局部变量表 转
    C# TreeHelper帮助类
    Java:Top K问题的解法
    C#单例模式
    C#分组方式比较
    Vue实现登录
    git使用总结
    js实现无色彩球
  • 原文地址:https://www.cnblogs.com/del/p/1041625.html
Copyright © 2020-2023  润新知