我有以下代碼:這個結果在Java中的解釋是什麼?
public class Main {
private int i = j; //1
private int j = 10;
public static void main(String[] args) {
System.out.println((new Main()).i);
}
}
並且在第1行,因爲非法 前方參照編譯錯誤。
但是,當我嘗試下面的代碼:
public class Main {
int i = getJ(); //1
int getJ(){
return j;
}
int j=10;
public static void main(String[] args) {
System.out.println(new Main().i);
}
}
它工作正常,結果爲0。
爲什麼會出現在1號線沒有違法 向前參考這裏。這兩個代碼類似於我。
「return j」呢? j在聲明之前使用 – 2010-06-08 21:38:21
'return j;'在方法爲_called_時執行,而不是在_defined_時執行。將該方法移到其他地方不會有任何區別。 – SLaks 2010-06-08 21:39:03