Re: [問題] 面試遇到的JAVA問題

看板java作者 (我要越級挑戰)時間14年前 (2011/11/11 23:03), 編輯推噓4(405)
留言9則, 3人參與, 最新討論串2/3 (看更多)
※ 引述《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

11/12 10:57, , 1F
不錯 這個範例可以讓新手清楚的了解程式在建構子之前還執行
11/12 10:57, 1F

11/12 11:02, , 2F
了什麼 不過x,y這兩個變數 用區塊中的區塊會有什麼特別之處
11/12 11:02, 2F

11/12 11:05, , 3F
有沒有什麼範例可顯示出原例與x,y在同一區塊中初始化的差別
11/12 11:05, 3F

11/12 14:28, , 4F
推一個 thanks
11/12 14:28, 4F

11/12 21:49, , 5F
外層的{}是instance initializer,內層{}是 local scope
11/12 21:49, 5F

11/12 21:52, , 6F
如果你兩者都懂,應該不需要這樣問。
11/12 21:52, 6F

11/13 20:10, , 7F
終於 發文問題 又造成沸沸揚揚之後 終於出現關鍵字眼了
11/13 20:10, 7F

11/13 20:12, , 8F
內層{}是為了有local scope,這個關鍵講出來 問題就解決了
11/13 20:12, 8F

11/13 20:16, , 9F
原先的問題 其實只要向sbrhsieh那樣 一句話就可以解釋清楚了
11/13 20:16, 9F
文章代碼(AID): #1ElJajXu (java)
文章代碼(AID): #1ElJajXu (java)