java类中允许静态方法和静态变量,
我知道在delphi中用class关键字表示静态的方法,
但是在delphi中怎么表示和使用静态的变量?
静态方法可以设为虚方法吗?
还有就是面向对象编程里面为什么一定要有静态变量和静态方法这样一种特性?
谢了,分不够可以再加,以上三个问题每个100分。
我知道在delphi中用class关键字表示静态的方法,
但是在delphi中怎么表示和使用静态的变量?
静态方法可以设为虚方法吗?
还有就是面向对象编程里面为什么一定要有静态变量和静态方法这样一种特性?
谢了,分不够可以再加,以上三个问题每个100分。
解决方案 »
- 计算两个时间差,相当于倒计时。
- 怎么样在Dbgrid中实现按住shift键把鼠标点选两个位置之间的记录全部选中,像Excel那样
- 获得网卡速度如何实现
- 在Win9X、Win2000、WinXP 下如何获得主板BIOS的序列号及相关内容
- 小弟决定以后放弃SDK!主功DELPHI!呵呵(散分)
- 关于toolbar
- HotKey组件的使用方法,请各位指点!
- help!熟悉delphi收邮件的进来看看!一定给分!
- Dephi多层数据库查询问题
- 快过年了,散点分,并祝大家新年快乐!
- 请问哪里有阿拉伯数字转换为大写中文数字的源码或好的思路
- 编译、建立时选中了build with runtime package 发布时需要提供哪些包?
答:在Delphi5中直接用const来定义静态局部变量,在Delphi6中则可以使用const和{$J+}开关来办到。但是这样的静态变量如果定义在类方法中,那么这个类所创建的对象里的静态变量都是共享的。我写了一个简单的例程如下:在Delphi里New->Application,再New->Unit,贴入MyObj类的代码如下:
unit Unit2;interfacetype
TMyObj = class
public
procedure ShowID;
end;implementationuses Dialogs, SysUtils;procedure TMyObj.ShowID;
{$J+}
const
I: Integer = 0;
{$J-}
begin
ShowMessage(IntToStr(I));
Inc(I);
end;end.
然后回到Unit1,在Interface段添加对Unit2的引用,在Form1上放2个Button。
为Form1的OnCreate、OnClose事件以及两个Button的OnClick事件添写处理代码,最终使Unit1的代码变成如下:unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Unit2;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
OBJ1, OBJ2: TMyObj;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.FormCreate(Sender: TObject);
begin
OBJ1 := TMyObj.Create;
OBJ2 := TMyObj.Create;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
OBJ1.ShowID;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
OBJ2.ShowID;
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
OBJ1.Free;
OBJ2.Free;
end;end.
所以静态方法不可以是虚方法
这和C#一样
但和Java不同,Java确实可以.
讨论得越清楚越好,呵呵。
哪位能不能再说说静态变量?不是c++的静态变量,
是java的类中的静态成员,在dephi的类中怎么实现?
你说用class声明,怎么声明啊?能具体一点吗?3x
>>我知道在delphi中用class关键字表示静态的方法,
>>但是在delphi中怎么表示和使用静态的变量?
在delphi没有等同于c++中的静态变量。(java我不懂)>>静态方法可以设为虚方法吗?可以。事实上你看TObject的类方法(静态方法)都是虚拟的。>>还有就是面向对象编程里面为什么一定要有静态变量和静态方法这样一种特性?
>>谢了,分不够可以再加,以上三个问题每个100分。
因为有些操作只是和类有关的,和个别的对象没有什么关系。还有一种考虑,就是效率的原因。