1. 程式人生 > >Delphi中的結構體與類

Delphi中的結構體與類

結構體與類的概述

結構體可以看作輕量級的類。

從使用的方式上講,結構體定義了便可直接使用,而類必須建立該類的物件才可使用。

從記憶體的管理上講,結構體對記憶體的佔用是由應用自動維護的,而類則需要手動建立該類的物件,當我們不再需要時要手動釋放。

 

注意:相比輕量級的結構體,重量級的類可以有更復雜的功能,同時類更加地體現面向物件的思想。

 

結構體與類的定義

結構體與類的定義使用的關鍵字不同,分別是:record、class。

type
  {使用record定義一個結構體}
  MyRecord = record
    {定義結構體的屬性}
    name: String;
    {定義結構體的過程}
    procedure showName;
    {定義結構體的方法}
    function getName(): String;
  end;


  {使用class定義一個類}
  MyClass = class
    {定義類的屬性}
    name: String;
    {定義類的過程}
    procedure showName;
    {定義類的方法}
    function getName(): String;
  end;

結構體與類中過程與方法的具體實現

{ MyRecord }

function MyRecord.getName: String;
begin
  Result := name;
end;

procedure MyRecord.showName;
begin
  showMessage(name);
end;

{ MyClass }

function MyClass.getName: String;
begin
  Result := name;
end;

procedure MyClass.showName;
begin
  showMessage(name);
end;

end.


 

結構體與類的使用

procedure TForm1.Button1Click(Sender: TObject);
var
  {在此宣告結構體後便可直接使用}
  mRecord: MyRecord;
  {在此宣告類後還需要建立該類的物件}
  mClass: MyClass;
begin
  {操作結構體中的屬性、過程、方法}
  mRecord.name :='mRecord_name';
  showMessage(mRecord.name);
  showMessage(mRecord.getName);
  mRecord.showName();

  {這裡需要先建立類的物件}
  mClass := MyClass.Create();
  {操作類中的屬性、過程、方法}
  mClass.name :='mClass_name';
  showMessage(mClass.name);
  showMessage(mClass.getName);
  mClass.showName();
end;

--------------------- 本文來自 鬼A魅 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/u014046591/article/details/48937277?utm_source=copy