Java Instanzvariablen Initialisierung mit Methode

Ich bin ein bisschen verwirrt über den folgenden Code:

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);          
  }
}

Die Ausgabe hier ist0 29, aber ich dachte, dass dies ein Compilerfehler sein muss, weil die Variable h nicht initialisiert werden sollte, wenn es um die Methode @ gegiveH(). Durchläuft die Zusammenstellung also die Zeilen von oben nach unten? Warum funktioniert das? Warum ist der Wert vonx 0 und nicht 29?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage