Я немного запутался в следующем фрагменте кода:
public class Test{
int x = giveH();
int h = 29;
public int giveH(){
return h;
}
public static void main(String args[])
{
Test t = new Test();
System.out.print(t.x + " ");
System.out.print(t.h);
}
}
Результат здесь 0 29
, но я думал, что это должна быть ошибка компилятора, потому что переменная h не должна была инициализироваться, когда дело доходит до метода giveH()
. Итак, компиляция проходит через линии сверху вниз? Почему это работает? Почему значение x
0, а не 29?