灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:7301回复:0

delphi7中类的定义和使用

楼主#
更多 发布于:2013-05-25 14:56
类成员类型有待考究。望知者相告。

在delphi7中怎么创建一个自己的类:

1、类定义位置:新建一个单元,如下所示


[delphi] unit Unit3;
 
interface
 
implementation
 
end.

unit Unit3;

interface

implementation

end.

类的定义应在interface和implementation之间。类的实现部分在implementation和end.之间。以type始以end;止。

2、类成员类型:public、private、published默认类型为public

3、构造函数、析构函数、重载函数。

构造函数和析构函数必须是固定格式。重载函数通过在函数定义后加overload;实现。

4、类成员数据和成员方法的位置关系:在成员类型关键字之后必须是先成员数据后成员方法,否则会报错:Field definition not allowed after methods or properties.

5、类的使用:声明一个类对象后,必须先调用其create方法,之后才可使用该类对象。

6、free是TObject类的方法,never call destroy directly,而是调用free method。

有两个比较nb的事:

1)仅有成员函数声明没有成员函数实现会报错。

2)delphi的initialization和finalization单元,可代替构筑函数和析构函数。


类定义和使用示例

[delphi]  unit Unit2;
 
interface
//有基类时 type TStudent = class(基类)  
type TStudent=class
  procedure SetID(ID:string);
public
  ID : string;
  function GetID:string;
  constructor Create(i:integer); overload;
  constructor Create ; overload;
  destructor Destroy;
end;
 
implementation
  
procedure TStudent.SetID(ID:string);
begin
 
end;
 
function TStudent.GetID:string;
begin
  result := ID;
end;
 
constructor TStudent.Create(i:integer);
begin
  ID := 'abc';
end;
 
constructor TStudent.Create;
begin
 
end;
 
destructor TStudent.Destroy;
begin
 
end;
end.

unit Unit2;

interface
//有基类时 type TStudent = class(基类)
type TStudent=class
  procedure SetID(ID:string);
public
  ID : string;
  function GetID:string;
  constructor Create(i:integer); overload;
  constructor Create ; overload;
  destructor Destroy;
end;

implementation
 
procedure TStudent.SetID(ID:string);
begin

end;

function TStudent.GetID:string;
begin
  result := ID;
end;

constructor TStudent.Create(i:integer);
begin
  ID := 'abc';
end;

constructor TStudent.Create;
begin

end;

destructor TStudent.Destroy;
begin

end;
end.

[delphi]  procedure TForm1.Button1Click(Sender: TObject);
var
  stuA : TStudent;
begin
  stuA := TStudent.Create(1);
  ShowMessage(stuA.GetID);
end;

喜欢0 评分0
游客

返回顶部