Delphi中的结构体与类

结构体与类的概述

结构体能够看做轻量级的类。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内存

相关文章
相关标签/搜索