作者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://www.ptt.cc/bbs/java/M.1477715442.A.44C.html
推 kyleJ: 兩者同名的話先找區域變數 10/29 12:45
→ kyleJ: 同名的時候你可以使用Test.x來指定是全域變數 10/29 12:46
→ kyleJ: 那個全域變數叫class field類別變數 其實也不是真的全域啦 10/29 12:53
推 kyleJ: 以你現在的code來看: 10/29 12:55
→ kyleJ: 使用 x 會輸出0 10/29 12:55
→ kyleJ: 使用 Test.x 會輸出1 10/29 12:55
→ shehrevar: 感謝~~P幣晚點奉上 10/29 13:56
→ pttworld: 語言定義,scope。 10/29 14:06