牛骨文教育服务平台(让学习变的简单)
博文笔记

Delphi中的结构体与类

创建时间:2015-10-06 投稿人: 浏览次数:2292

结构体与类的概述

结构体可以看作轻量级的类。 从使用的方式上讲,结构体定义了便可直接使用,而类必须创建该类的对象才可使用。 从内存的管理上讲,结构体对内存的占用是由应用自动维护的,而类则需要手动创建该类的对象,当我们不再需要时要手动释放。
注意:相比轻量级的结构体,重量级的类可以有更复杂的功能,同时类更加地体现面向对象的思想。

结构体与类的定义

结构体与类的定义使用的关键字不同,分别是: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;



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。