Delphi中如何申明类变量,类方法。。。(100分)

  • 主题发起人 主题发起人 zxtko
  • 开始时间 开始时间
Z

zxtko

Unregistered / Unconfirmed
GUEST, unregistred user!
似乎在Delphi中不需要这些,但总觉得缺点什么。如何在 Delphi中申明类方法,变量呢?
type
TForm1 = class(TForm)
Edit1: TEdit;
private
{ Private declarations }
public
{ Public declarations }
end;
TForm1中的Edit1属于私有,公有,还是???
这是什么呢?
 
TForm1是容器,Edit1的parent是tform1
 
type
TForm1 = class(TForm)
Edit1: TEdit;
temp : integer;
YourFunction6()

private
YourFunction3()

{ Private declarations }
public
YourFunction1()

{ Public declarations }
end;

 
type
TForm1 = class(TForm)
Edit1: TEdit;
temp : integer;
YourFunction6()

private
YourFunction3()
//私有,只有FORM1才能访问
s:string;
{ Private declarations }
public
YourFunction1()
//公共,其它的也能访问
s:string;
{ Public declarations }
end;
 
TForm1中的Edit1属于私有,公有,还是???
:published
delphi类定义中缺省变量属性为pubished
 
公有。(是delphi的问题)
 
type
TForm1 = class(TForm)
Edit1: TEdit;//公有,其它的單元也能訪問,前提是用uses加載此單元(public省略)
//或從此類繼承的類
private
{ Private declarations }//私有,其它的單元不能訪問(含從此單元繼承的類)
public
{ Public declarations }//公有,其它的單元也能訪問,前提是用uses加載此單元
//或從此類繼承的類
end;
 
即不是公有,也不是私有,而是Published,
声明为published的变量(控件)可以在object Inspector窗口中见到
 
我比较同意TForm1是容器,对于容器的概念我还是不太清楚,是不是象TEdit,等没有TForm容器它
就不能存在?

还有,在Delphi中如何申明类变量,类方法呢?如同C++中
class MyClass{
static int i;
}
中的i就是个类变量,用static修饰,Delphi 中如何呢?
 
Delphi里面没有类静态变量的概念,类的静态方法倒是有,但是和C++中不同。
定义很简单,class procedure Hello;即可,普通函数定义前面加上class前缀
但与c++不同,Delphi中的类方法仍然有隐藏的Self参数,
c++中类的静态成员函数和普通函数没有任何区别,类只是起到namespace作用
如果你以类的形式调用如TTest.Hello则Self为class of TTest,
如果以对象方式调用如TestObj.Hello则Self就是对象本身TestObj,和普通方法相同。
而且Delphi中的类方法实现上与普通方法也完全一样,因此可以
使用virtual, abstract等等修饰关键字,甚至可以重载,非常方便。
 
后退
顶部