作者shehrevar (阿浩)
看板java
标题[语法] 区域变数跟全域变数都有相同变数情况
时间Sat Oct 29 12:30:40 2016
public class Test {
static int x=1;
static Test ref;
public static void main(String[] args) {
int x=0;
System.out.println(ref);
System.out.println(x);
}
}
请教一下,现在的X输出会是0,因为方法内有X为0的变数
但是如果把他拿掉之後,输出会找到X为1的变数
能否解释一下逻辑,以及先後顺序的概念
奉上100p,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.83.216.94
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1477715442.A.44C.html
1F:推 kyleJ: 两者同名的话先找区域变数 10/29 12:45
2F:→ kyleJ: 同名的时候你可以使用Test.x来指定是全域变数 10/29 12:46
3F:→ kyleJ: 那个全域变数叫class field类别变数 其实也不是真的全域啦 10/29 12:53
4F:推 kyleJ: 以你现在的code来看: 10/29 12:55
5F:→ kyleJ: 使用 x 会输出0 10/29 12:55
6F:→ kyleJ: 使用 Test.x 会输出1 10/29 12:55
7F:→ shehrevar: 感谢~~P币晚点奉上 10/29 13:56
8F:→ pttworld: 语言定义,scope。 10/29 14:06