Inicialização de variáveis de instância Java com o método
Estou um pouco confuso sobre o seguinte trecho de código:
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);
}
}
A saída aqui é0 29
, mas achei que isso deveria ser um erro do compilador, porque a variável h não deveria ter sido inicializada quando se trata do métodogiveH()
. Então, a compilação passa pelas linhas de cima para baixo? Por que isso está funcionando? Por que o valor dex
0 e não 29?