Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

Всем привет. Можете объяснить каким способом лучше инициализировать конструктор и в чем разница этих инициализаций?
Код:

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, 07:49   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 9,777
Репутация: 1544

icq: 216409213
По умолчанию

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

А каким образом в конструкторе по умолчанию
Код:

public Course() {
       
}

вызывается конструктор
Код:

this("", new String [0], 0, 2);

который нигде не объявляется?
REztor вне форума   Ответить с цитированием
Старый 11.12.2016, 16:32   #4
Bugrimov
C/C++, Java
Профессионал
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Адрес: Новосибирск
Сообщений: 1,598
Репутация: 703

skype: javabugrimov
По умолчанию

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

Код:

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 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
инициализация vibraxo Assembler 5 11.06.2013 03:39
Инициализация Aleksey1989 Общие вопросы Delphi 10 11.09.2010 21:50
Меню, инициализация Krumyura Общие вопросы C/C++ 4 22.03.2010 19:14
Ошибка инициализация Krumyura Общие вопросы C/C++ 2 22.03.2010 15:08
Инициализация Krumyura Общие вопросы C/C++ 5 21.03.2010 00:37




01:18.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru