Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Объявление переменной


Автор: Alone 23.2.2004, 11:30
Подскажите, чем отличается объявление переменной в классе

public class aaa(){

private Object o=new Object();

public aaa(){

}
}

от объявления в конструкторе?

public class aaa(){

private Object o;

public aaa(){
o=new Object();
}
}

Автор: DarkDS 23.2.2004, 13:34
Практически ни чем.
Тонее:
В первом варианте объект о создатся до вызова конструкотра. То есть создание будет выглядить так:
1. создание о
2. вызов супер.
3. вызов остального кода констркутора.
А во втором случа так:
1. вызов супера.
2. создание о
3. вызов остального кода конструктора.

То есть в большинстве случаем разници между первым и вторым кодом нету.
Яфная инициализация при объявлении (первый случай) должно быть использовательно обязательно в том случае когда конструктор родительского класса вызывает какую либо переопределенную ф-ию, использующую данный объект. В остальных случаях это на усмотрение программиста.

Автор: Alone 23.2.2004, 16:01
ок. понятно. пасиб.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)