看板 java 關於我們 聯絡資訊
※ 引述《wemee (我不為讀者改變作風)》之銘言: : 有一些題目 類似以下用法 : 但我完全不知道這麼用的意義是什麼 : 例如 : class Foo : { : { : x = 1; : { : y = 2; : } : } : int x, y; : } : 分成區塊中的區塊 有什麼意義嗎? : 通常不是這麼寫就好了 : { : x = 1; : y = 2; : } : 難道只是要先嚇嚇人而已 寫個小例子跑看看唄。 public class Init { static { System.out.println("class init."); } { System.out.println("instance init. 1"); x = 1; { System.out.println("instance init. 2"); y = 2; } } int x, y; public Init() { System.out.println("ctor"); } { System.out.println("instance init. 3"); } public static void main(String[] args) { new Init(); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.161.123.203
wemee:不錯 這個範例可以讓新手清楚的了解程式在建構子之前還執行 11/12 10:57
wemee:了什麼 不過x,y這兩個變數 用區塊中的區塊會有什麼特別之處 11/12 11:02
wemee:有沒有什麼範例可顯示出原例與x,y在同一區塊中初始化的差別 11/12 11:05
MICHAELSHENG:推一個 thanks 11/12 14:28
sbrhsieh:外層的{}是instance initializer,內層{}是 local scope 11/12 21:49
sbrhsieh:如果你兩者都懂,應該不需要這樣問。 11/12 21:52
wemee:終於 發文問題 又造成沸沸揚揚之後 終於出現關鍵字眼了 11/13 20:10
wemee:內層{}是為了有local scope,這個關鍵講出來 問題就解決了 11/13 20:12
wemee:原先的問題 其實只要向sbrhsieh那樣 一句話就可以解釋清楚了 11/13 20:16