Почему Java просит инициализировать переменные, когда это локально

Пожалуйста, смотрите код ниже. Метод printTest () печатает значение по умолчанию для неинициализированных переменных, но когда дело доходит до основного метода, java запрашивает инициализацию переменной. Кто-нибудь может объяснить, почему?

   public class Test1 {

    public static void main(String[] args) {   
      int j;
      String t;

      System.out.println(j);
      System.out.println(t);
    }
  }


  public class Test2 {

   int i;
   String test;

  public static void main(String[] args)   {   
    new Test().printTest();
  }

   void printTest()   {
     System.out.println(i);
     System.out.println(test);
  }

  }

Ответы на вопрос(7)

Ваш ответ на вопрос