- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[Delphi类方法和普通方法的区别
Delphi 类方法和普通方法的区别
Delphi有的方法在前面都加上了Class关键字,即方法被声明为类方法。类方法与普通方法不同,普通方法只有在对象被实例化后才可调用,否则会因为对象未被创建而引发异常,这种异常所表现出的特征往往是莫名其妙的。如果跟踪程序就会发现,这种因对象为实例化而造成的异常往往是在调用对象的方法时引发访问无效内存的提示,并有可能造成死机等;并且在出错时很难被发现,因为程序的逻辑是正确的。而类方法的调用却不需要对象的实例化,即对象被声明后就可以调用类方法,因此类方法的编写有一定的约束,即不能访问类所声明的变量。因为类未实例化,变量的存储空间还未分配。
示例1:
//类声明
TMyClass = class
public
class procedure MyProc; //类方式
constructor Create; //Create 也是类方法
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TMyClass }
constructor TMyClass.Create;
begin
inherited;
MyProc; //内部调用类方法
end;
class procedure TMyClass.MyProc;
begin
ShowMessage(ok); //类方法实现
end;
procedure TForm1.FormCreate(Sender: TObject);
var
MyClass1: TMyClass;
begin
TMyClass.MyProc; //用类名调用类方法,显示:ok 只有类方法才能 直接用类 调用
MyClass1 := TMyClass.Create; //内部调用类方法,显示:ok 构造
MyClass1.MyProc; //对象调用类方法,显示:ok 类方法 也可以用 对象 调用
MyClass1.Free;
end;
示例2(私有 公有):
unit Unit2;
interface
uses
Windows, Forms, Dialogs;
type
TA = class
private
class procedure aa;
public
class procedure bb;
procedure cc;
end;
implementation
class procedure TA.aa;
begin
showmessage(aa);
end;
class procedure TA.bb;
begin
showmessage(bb);
end;
procedure TA.cc;
begin
showmessage(cc);
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Unit2, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
TA.bb; //编译通过
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TA.aa;//编译通不过
end;
procedure TForm1.
您可能关注的文档
- [第五章计划与决策.ppt
- [COMS英文翻译.doc
- [第五章计数器串行口和中断器.ppt
- [第五章训练比赛的归因.ppt
- [COMFAST150M300M无线网卡软AP设置详解.doc
- [CGIS手册.doc
- [第五章详细设计.ppt
- [第五章详细设计描述的工具.ppt
- [第五章语法制导翻译和中间代码第4章主要内容回顾.ppt
- [COMMNET康耐特路由器必威体育精装版安装说明书.doc
- 甘肃省XB师范大学附属中学2025届高三上学期一模诊断考试地理答案.doc
- 甘肃省XB师范大学附属中学2025届高三上学期一模诊断政治含解析.doc
- 安徽省皖江名校2024-2025学年高一上学期12月联考英语无答案.doc
- 2025年1月八省联考高考综合改革适应性测高三化学陕西山西宁夏青海卷无答案.doc
- 2025年1月八省联考高考综合改革适应性测高三化学四川卷无答案.doc
- 2025年1月八省联考高考综合改革适应性测高三政治陕西山西宁夏青海卷无答案.doc
- 2025年1月内蒙古自治区普通高等学校招生考试适应性测试(八省联考)历史无答案.doc
- 2025年1月内蒙古自治区普通高等学校招生考试适应性测试(八省联考)历史含解析.doc
- 2025年1月四川省普通高等学校招生考试适应性测试(八省联考)历史含解析.doc
- 2025年1月四川省普通高等学校招生考试适应性测试(八省联考)政治无答案.doc
最近下载
- 【高分阅读】五年级阅读理解——分析字词句段的含义或作用(含答案)部编版.pdf VIP
- 《我们大家跳起来》(课件)人音版(2012)音乐四年级下册.pptx
- 川教版九年级上册生命生态与安全教案.doc
- 16-1 第1课时 二次根式的概念 课件.pptx VIP
- 工程振动与测试技术课件-第十章非线性振动.ppt VIP
- 江苏省家庭养老床位建设和服务协议.docx
- 施乐5955维修手册.pdf
- 2025年流感预防、治疗及护理理论知识考核试题及答案 .pdf VIP
- 环境污染修复技术与案例-全套PPT课件.pptx
- 实用阶梯英语—写作教程unit 8 Essay & Essay Structure.ppt VIP
文档评论(0)