Например:
public class Foo {
private int bar = 42;
Foo() {}
}
против
public class Foo {
private int bar;
Foo() {
bar = 42;
}
}
Есть ли какие-либо затраты / выгоды между этими двумя методами? Единственный способ, как я мог видеть, как это изменило ситуацию, - это сценарий, подобный следующему (где вы устанавливаете значение дважды для второго конструктора):
public class Foo {
private int bar = 42;
Foo() {}
Foo(int in) {
bar = in;
}
}
против (в любом случае вы устанавливаете его только один раз)
public class Foo {
private int bar;
Foo() {
this(42);
}
Foo(int in) {
bar = in;
}
}
Я что-то упустил? Есть ли какая-то внутренняя ценность в том, чтобы делать это так или иначе?
Редактировать
Хорошо, я понимаю, что это функционально эквивалентно. Я пытаюсь выяснить, есть ли существенные затраты на обработку, связанные с одним по сравнению с другим. Похоже, в лучшем случае это должно быть пренебрежимо мало, но я хотел бы получить подтверждение моих подозрений.
Редактировать 2
Я также понимаю, что их ручная настройка исключает возможность логики инициализации. Вот почему я выбрал такие простые примеры. Я отредактировал текст вопроса, чтобы отразить, что меня интересует эффективность.