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

猜你喜欢

转载自my.oschina.net/u/2343604/blog/2222132