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

理解 Delphi 的類(一) - 從結構談起

編輯:Delphi

unit Unit1;

interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;
type
 TForm1 = class(TForm)
  Button1: TButton;
  procedure Button1Click(Sender: TObject);
 end;
var
 Form1: TForm1;
implementation
{$R *.dfm}
Type
 TMyRecord = record {定義結構}
  d: TDate;
 end;
 TMyClass = class  {定義類; 雖然這個類沒有什麼實際意義, 但就是一個類了}
  d: TDate;
 end;
procedure TForm1.Button1Click(Sender: TObject);
var
 MyRec: TMyRecord; {聲明一個結構變量}
 MyCls: TMyClass; {聲明一個類變量, 也就是對象}
begin

  {使用結構}

 MyRec.d := Now;
 ShowMessage(DateToStr(MyRec.d));   {2008-1-11}
 ShowMessage(IntToStr(SizeOf(MyRec))); {8; MyRec 結構的大小是 8}

  {使用類}

 MyCls := TMyClass.Create;       {需要先手動建立, 因為類需要實例化為對象才可以使用}
 MyCls.d := Now;            {2008-1-11}
 ShowMessage(DateToStr(MyCls.d));
 ShowMessage(IntToStr(SizeOf(MyCls))); {4; 怎麼會是4? 因為 MyCls 對象只是一個指針!}

  MyCls.Free;              {用完後釋放}

  {結論:

  結構(或叫記錄)與類都是一種自定義類型;

  結構直接使用, 內存是自動管理的;

  類只是一個模型, 需要根據模型(也就是類)創建(Create)出對象來才能使用, 用完後需要手動釋放內存;

  (內存使用的規律應該是: 自動建立自動釋放、手動建立手動釋放)

  結構與對象(類的實例)在內存中以不同的方式存放, 對象只是一個指針;

  和結構相比, 類擁有這更強大的功能!

  }

  end;

  end.

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