Delphi中的結構體與類
阿新 • • 發佈:2018-11-25
結構體與類的概述
結構體可以看作輕量級的類。
從使用的方式上講,結構體定義了便可直接使用,而類必須建立該類的物件才可使用。
從記憶體的管理上講,結構體對記憶體的佔用是由應用自動維護的,而類則需要手動建立該類的物件,當我們不再需要時要手動釋放。
注意:相比輕量級的結構體,重量級的類可以有更復雜的功能,同時類更加地體現面向物件的思想。
結構體與類的定義
結構體與類的定義使用的關鍵字不同,分別是: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