[語法] 區域變數跟全域變數都有相同變數情況

作者: shehrevar (阿浩)   2016-10-29 12:30:40
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,謝謝
作者: kyleJ (資工人)   2016-10-29 12:45:00
兩者同名的話先找區域變數同名的時候你可以使用Test.x來指定是全域變數那個全域變數叫class field類別變數 其實也不是真的全域啦以你現在的code來看:使用 x 會輸出0使用 Test.x 會輸出1
作者: shehrevar (阿浩)   2016-10-29 13:56:00
感謝~~P幣晚點奉上
作者: pttworld (批踢踢世界)   2016-10-29 14:06:00
語言定義,scope。

Links booklink

Contact Us: admin [ a t ] ucptt.com