Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2016, 00:29   #1
REztor
Форумчанин
 
Регистрация: 28.02.2009
Сообщений: 302
По умолчанию Инициализация конструтура

Всем привет. Можете объяснить каким способом лучше инициализировать конструктор и в чем разница этих инициализаций?
Код:
public class Course {
    private String title;
    private String []instr;
    private double price;
    final private int duration;
Код:
public Course() {
        title="";
        instr = new String [0];
        price = 0;
        duration = 2;
}
Или
Код:
public Course() {
        this("", new String [0], 0, 2);
}
REztor вне форума Ответить с цитированием
Старый 09.12.2016, 06:49   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Можете объяснить каким способом лучше инициализировать конструктор и в чем разница этих инициализаций?
Разницу ж видно: в первом случае вы в данном конструкторе инициализируете переменные, во втором вызываете другой конструктор с параметрами.
p51x на форуме Ответить с цитированием
Старый 09.12.2016, 21:01   #3
REztor
Форумчанин
 
Регистрация: 28.02.2009
Сообщений: 302
По умолчанию

А каким образом в конструкторе по умолчанию
Код:
public Course() {
       
}
вызывается конструктор
Код:
this("", new String [0], 0, 2);
который нигде не объявляется?
REztor вне форума Ответить с цитированием
Старый 11.12.2016, 15:32   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Никак. Для вызова альтернативного конструктора нужно написать, ну например так:

Код:
class Course {
    private String title;
    private String []instr;
    private double price;
    private final int duration;

    public Course() {
        this("", new String [0], 0, 2);
    }

    public Course(String title, String[] instr, double price, int duration) {
        this.title = title;
        this.instr = instr;
        this.price = price;
        this.duration = duration;
    }
}
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
инициализация vibraxo Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 11.06.2013 03:39
Инициализация Aleksey1989 Общие вопросы Delphi 10 11.09.2010 21:50
Меню, инициализация Krumyura Общие вопросы C/C++ 4 22.03.2010 18:14
Ошибка инициализация Krumyura Общие вопросы C/C++ 2 22.03.2010 14:08
Инициализация Krumyura Общие вопросы C/C++ 5 20.03.2010 23:37