3
なぜ変数が同じ変数を呼び出す(再帰のように見える)メソッドを呼び出す(自身を初期化する)ことができるのですか?私は無限の再帰を見ることを期待しましたが、エラーなしでコンパイルします。説明は?前方参照と再帰
class Forward {
static int test(){
return i;
}
static int i=test();
public static void main(String[] args) {
System.out.println(test()); //sout= 0
System.out.println(i); //sout =0
}
}
もう1つの例です。 j
を参照しながら、なぜBackwards.j
作業を参照しないエラー(「不法前方参照」)を提供します:
class Backwards{
//static int i=j; //illegal forward reference;
static int i=Backwards.j; //reference through class works
static int j=i;
public static void main(String[] args) {
System.out.println(i);
System.out.println(j);
}
}
答えを理解しましたか? – ItamarG3