结构体能够看做轻量级的类。spa
从使用的方式上讲,结构体定义了即可直接使用,而类必须建立该类的对象才可以使用。.net
从内存的管理上讲,结构体对内存的占用是由应用自动维护的,而类则须要手动建立该类的对象,当咱们再也不须要时要手动释放。code
注意:相比轻量级的结构体,重量级的类能够有更复杂的功能,同时类更加地体现面向对象的思想。orm
结构体与类的定义使用的关键字不一样,分别是: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;
结构体与类中过程与方法的具体实现blog
{ 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内存