请问delphi中变量声明的问题
unitUnit1;interfaceusestypeTForm1=class(TForm)privatea:Integer;//#1publica:Integer;//...
unit Unit1;
interface
uses
type
TForm1=class(TForm)
private
a:Integer;//#1
public
a:Integer;//#2
end;
var
Form1:TForm1;
a:Integer;//#3
implementation
var
a:Integer;//#4
我想问一下在#1234定义的a有什么区别吗?
(1)都是全局变量吗?
(2)是实例变量还是类变量
(3)#34的变量时什么类型的,private还是public?
(4)我要想定义类变量怎么定义? 展开
interface
uses
type
TForm1=class(TForm)
private
a:Integer;//#1
public
a:Integer;//#2
end;
var
Form1:TForm1;
a:Integer;//#3
implementation
var
a:Integer;//#4
我想问一下在#1234定义的a有什么区别吗?
(1)都是全局变量吗?
(2)是实例变量还是类变量
(3)#34的变量时什么类型的,private还是public?
(4)我要想定义类变量怎么定义? 展开
展开全部
//#1 ,//#2的定义是类定义,该变量随着对象TForm1实例(创建)而存在,如果TForm1的实例释放,也跟着释放
而就引用范围来讲,#1,#2都可以在本单元中以TForm1的实例方式或者TForm1的方法中进行访问,
而在本单元以外,可以用以TForm1的实例方式进行访问//#2,而//#1不能访问
//#3为全局变量,该变量在编译时就固定了地址,他占用的空间会在Exe被装入时由Windows(或其他操作系统)初始化,他的地址是唯一的,对他的访问编译时会以程序内的绝对地址来寻址
而要访问 //#3,只需要引用该单元即可访问
//#4 是单元内全局变量,和#3唯一不同的就是其他单元不能访问
而就引用范围来讲,#1,#2都可以在本单元中以TForm1的实例方式或者TForm1的方法中进行访问,
而在本单元以外,可以用以TForm1的实例方式进行访问//#2,而//#1不能访问
//#3为全局变量,该变量在编译时就固定了地址,他占用的空间会在Exe被装入时由Windows(或其他操作系统)初始化,他的地址是唯一的,对他的访问编译时会以程序内的绝对地址来寻址
而要访问 //#3,只需要引用该单元即可访问
//#4 是单元内全局变量,和#3唯一不同的就是其他单元不能访问
展开全部
都是全局,只是访问权限有所区别
#1定义的是属于窗体Form类的私有变量,只能在类内部访问
#2定义的是属于窗体Form类的公有变量,其它的类也可以访问。
#3定义的是一个全局变量,它和Form窗体类同级,可以在其它的单元访问
#4定义的是窗体的全局变量,在窗体单元的任何过程和方法都可以访问
以上是我个人的理解,希望对你有所帮助
#1定义的是属于窗体Form类的私有变量,只能在类内部访问
#2定义的是属于窗体Form类的公有变量,其它的类也可以访问。
#3定义的是一个全局变量,它和Form窗体类同级,可以在其它的单元访问
#4定义的是窗体的全局变量,在窗体单元的任何过程和方法都可以访问
以上是我个人的理解,希望对你有所帮助
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#1 是类变量,只能在类内访问,而且是私有的,不能通过实例访问。
#2 也是类变量,公开的,能通过类实例访问。如form1.a
注:#1和#2不能同时定义为同名
#3 是全局变量,是在单元接口部分定义的,能在其他引用该单元的地方访问。
#4 是单元全局变量,是在单元的实现部队定义的,只能在该单元内访问。
3,4也不能同名。
#2 也是类变量,公开的,能通过类实例访问。如form1.a
注:#1和#2不能同时定义为同名
#3 是全局变量,是在单元接口部分定义的,能在其他引用该单元的地方访问。
#4 是单元全局变量,是在单元的实现部队定义的,只能在该单元内访问。
3,4也不能同名。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#1是私有变量
#2#3是公共变量
#4是全局变量
#2#3是公共变量
#4是全局变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询