a
имеет примитивный тип int
, который будет немедленно инициализирован, что означает:
Статические члены класса: получить init'ed при загрузке класса (большинствовремени, когда раньше main()
, но это зависит от того, когда класс загружается).
class S {
static int a;
}
Нестатические члены класса: получить init'ed, когда объектявляется.(в большинстве случаев после new
, но существуют другие, более продвинутые методы для создания нового объекта).
class S {
int a;
}
Локальные переменные: должен быть инициирован вобласть применения метода перед первым использованием.
class S {
void foo() {
int b = 0;
}
}
редактируется после исправления ...