java内部类中可以更改全局变量的值吗

如果一个类(A)中定义了一个private的全局属性,然后我再此类中的一个内部类(B)里给这个属性赋值。之后我再在一个类(C)中调用此属性的get方法,不知道为什么得到的... 如果一个类(A)中定义了一个private的全局属性,然后我再此类中的一个内部类(B)里给这个属性赋值。之后我再在一个类(C)中调用此属性的get方法,不知道为什么得到的是Null,而不是我之前设置的值。求高手指教。 展开
 我来答
百度网友caf47f4
推荐于2017-10-01 · 超过25用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:58.9万
展开全部
在java中,静态的东西,在内存中时默认实例化的,在类加载时就会放在内存中。你在类A中定义了一个静态全局变量,在构造类A的对象或者使用类A的时候,类A才会被加载。加载的同时各个属性会被初始化(初始化在内存中表现为初始化成00000000...。对于int等基本数据类型,是0;对于对象等类型,是null)。在未使用类B之前,类B中的内容是不会被加载的。因此,在类C中调用类A的get方法时,类A加载,虽然类B是类A的内部类,但并没有使用它,因此不会被加载,类A中的这个属性只是被初始化,但并没有在类B中赋初值。只有你使用类B时,才会加载B,才会给这个属性赋值。
你最好能把一个示例代码贴出来,这样可以更好地看出问题。
冰凝火龙吟
2013-04-07 · TA获得超过739个赞
知道小有建树答主
回答量:266
采纳率:0%
帮助的人:341万
展开全部
这不是很明显吗?你的全局变量当然可以改变了,而且,你还是定义你自己的内部类,内部类连该类的私有变量都可以改变,全局变量更不是问题了,你再调试你的代码吧,肯定能出来结果的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1019844658
2013-04-07
知道答主
回答量:33
采纳率:0%
帮助的人:21.6万
展开全部
直接贴代码,com on
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式