Запутался в инициализации переменных экземпляра

Я готовлюсь к Экзамен SCJP, выполнив несколько пробных тестов, я наткнулся на этот:

Он спрашивает, каков результат следующего:

class TestClass
{
   int i = getInt();
   int k = 20;
   public int getInt() {  return k+1;  }
   public static void main(String[] args)
   {
      TestClass t = new TestClass();
      System.out.println(t.i+"  "+t.k);
   }
}

Я думал, что это будет 21 20 , поскольку ti вызовет getInt, который затем увеличивает k до 21.

Ho wever, ответ будет 1 20 . Я не понимаю, почему это будет 1, может ли кто-нибудь пролить свет на это?

9
задан Bill the Lizard 14 July 2012 в 12:35
поделиться