一直不太明白的一点:类方法有什么作用呢?

DD88 2004-03-23 02:38:23
我不太明白,类方法可以在哪些情况下使用呢?
既然类方法不能以来任何实例信息,那么为什么不把他作为一个单独的过程/函数呢?

大家能举例说说哪些地方可以用到类方法吗?
...全文
324 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunny 2004-03-23
  • 打赏
  • 举报
回复
一般情况下的确使用的不多(constructor除外),但它的确非常有用,在类型引用时使用的特别多!
DD88 2004-03-23
  • 打赏
  • 举报
回复
天啊!
我说的是平时编程序时,什么时候可以用到类方法(最好举例)。
我不是不明白什么叫类方法。
sxy_9761 2004-03-23
  • 打赏
  • 举报
回复
同于C++中的静态成员函数
liuhelin 2004-03-23
  • 打赏
  • 举报
回复
类方法:不用建立类的实例即可以访问.
你天天用的create就是类方法
不需要通过类的实例调用
jemmylau 2004-03-23
  • 打赏
  • 举报
回复
同其他语言中的静态方法,属于类,而不属于类的实例。
DD88 2004-03-23
  • 打赏
  • 举报
回复
to hawksoft(明月清风) :
为什么一个类要自己实例化自己呢?自实例化用于什么方面呢?

不好意思 :) 偶不懂。
广州接入 2004-03-23
  • 打赏
  • 举报
回复
类方法:不用建立类的实例即可以访问.
如类:
TClass,有一个方法:GetName.
一般情况下你必须定义一个实例并实例化:TClass A=TClass.Create;后你才可以引用,即用下面的方法调用:A.GetName.而类方法则不用,可直接调用:TClass.GetName;
hanlin2004(渴死的鱼) 说得.
当然还有一个非常重要的应用.
Type
TClass=Class
private
constuctor Create;
....
public
class function GetInstance : TClass;
end;
constructor Create;
begin
//
end;
class TClass.GetInstance : TClass;
begin
Result := TClass.Create;
...
end;

一个类不让别人实例化自己,而是自己实例化自己.
soaringsouth 2004-03-23
  • 打赏
  • 举报
回复
简而言之,类方法就是不需要实例化类就可以引用的方法
假如classA如此声明:
......
class function A :integer ;
function B:integer ;
......
那么,在程序中:
......
var i:integer ;
ca:classA;
.....
i:= TClassA.A;//正确
i:=TClacca.B;//错误
ca:=TclassA.create(nil);
i:=ca.B;//正确
......

不知道是不是词不达意
DD88 2004-03-23
  • 打赏
  • 举报
回复
to hanlin2004(渴死的鱼):
能否举个例子?这样比较容易理解。
hanlin2004 2004-03-23
  • 打赏
  • 举报
回复
抄一段:

类方法的提出是为了解决单元外访问类的变量,它不能访问独立于对象的数据,但可以作为一个整体而不是特定的对象实例应用与类,类方法只与类有关。

类方法通常用与返回诸如类名等信息,因为这类信息独立于对象实例,是相对固定的。

5,389

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧