作者qrtt1 (我要越級挑戰)
看板java
標題Re: [問題] 面試遇到的JAVA問題
時間Fri Nov 11 23:03:06 2011
※ 引述《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