Поля класса представлены объектными ссылками. Вопрос: Должен конструктор по умолчанию выделять под поля-ссылки память?
Пример:
class A {}
class B {
A a;
B() {
a = new A ();
}
}
Обычно в java не говорят о выделении/освобождении памяти.
Если вопрос в том, нужно ли инициализировать поля члены перед использованием - да нужно.
class A {int v = 5;}
class B {
A a; // a == null
B() {
}
void foo() {
System.out.print(a.v); // Может вызывать NullPointerException
}
void bar() {
if (a == null) a = new A();
System.out.print(a.v); // ok
}
}
////
B b = new B();
b.foo(); // NullPointerException - b.a не инициализирована
b.bar(); // ok
b.foo(); // ok, ведь a уже инициализирован
На примере метода bar показал, что в конструкторе это делать необязательно.
Хорошим тоном является отсутствие в публичном интерфейсе методов, допускающих неконсистентное(использование неинициализированных переменных) состояние класса.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости