Инициализация в определении против инициализации в конструкторе [дубликат]
На этот вопрос уже есть ответ здесь:
Каковы лучшие практики для определения задач методов Конструктор, Инициализация и Сброс 5 ответовВ Java, но также и в других языках OO, есть разница между инициализацией атрибута в его определении, как в
class Example {
public Sample sample_attribute = new Sample();
}
и используя конструктор для его инициализации?
class Example {
public Sample sample_attribute;
public Example() {
sample_attribute = new Sample();
}
}
Я не мог придумать никакой практической разницы, есть ли такая? Иначе, есть ли случаи, когда один метод лучше, чем другой, даже если они имеют одинаковый результат?