Инициализация переменных экземпляра Java методом
Я немного запутался в следующем фрагменте кода:
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?