Дошел до 28 уровня. И неожиданно осознал, что я не понимаю есть ли разница инициализации переменной при ее объявлении или в конструкторе который у нас присутствует явно. Для примера возьмем final которую обязаны инициализировать. Пожалуйста, на "пальцах" разъясните разницу между примерами:
a)
public class Test {
private String name;
private final Object obj = new Object();
public AdvertisementManager(String name) {
this.name = name;
}
}
b)
public class Test {
private String name;
private final Object obj;
public AdvertisementManager(String name) {
this.name = name;
obj = new Object();
}
}
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Вывод
b)
Вывод
Когда final переменная инициализированна, изменить ее значение не удасться. Это к слову об b). Попробуйте сколько бы вы обьектов не создали, значение переменной останеться неизменной для каждого обьекта. Что касается a), то конструктор дает нам возможность инициализировать каждый раз при создании обьекта final переменную новым значением.