程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 理解Delphi的類(十一) - 深入類中的方法(3)

理解Delphi的類(十一) - 深入類中的方法(3)

編輯: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;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved