Вызов конструктора из конструктора

  • 4
  • Недоступна
Вызов конструктора из другого конструктора — вполне естественная операция, хотя возможно сейчас вам кажется, что это сложный акробатический этюд. Внимательно изучите программу, разберитесь, что она делает, и исправьте конструктор с двумя параметрами так, чтобы он вызвал другой конструктор с радиусом 10. Какой? Догадайтесь!)
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (87)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Алексей6 уровень
13 августа, 19:19
Добрый день! Люди, объясните ,пожалуйста,что делает строка this (x,y,10) ? - В ней уже происходит вызов конструктора?
Yuji7 уровень, Тюмень
9 августа, 18:35
Когда нифига не понял, но с первого раза вдруг сработало
ClementineKruczynski6 уровень, Москва
7 июля, 08:21
А почему не принимается ответ:
this(x,y);
this.radius = 10.0;
А ответ принялся:
this(x,y,10.0);
код ведь один и тот же по сути. Почему первый ответ не принялся?
SigmundSchlomo19 уровень, Одесса
14 июля, 16:35
В первом случае ошибка, так как передается недостаточно аргументов. Самый верхний конструктор требует 3 аргумента, а Вы передали только 2.
das317 уровень
28 июня, 11:13
Я правильно понимаю, что все переменные класса должны быть проинициализированы в методе с любым количеством параметров? То есть в данном примере мы имеет три переменные класса, создаем конструкторы с двумя параметрами, или даже без параметров (Circle()), а объект создается с тремя? Те параметры, которые не принимаются в конструкторе, проходят по умолчанию, но мы должны обязательно прописать, чему равен параметр по умолчанию?
barracuda7 уровень, Санкт-Петербург
20 июня, 13:15
советую сперва вот это почитать, потом приступать к задаче. https://javarush.ru/groups/posts/793-vihzov-konstruktora-iz-konstruktora
Yuji7 уровень, Тюмень
9 августа, 18:36
Спасибо!
Азат14 уровень, Казань
14 июня, 14:47
В чем разница между? public Circle(double x, double y) { this.x=x; this.y=y; this.radius=10.0; и this(x,y, 10.0); Первый способ не принимает
Александр7 уровень, Москва
21 июня, 09:04
https://javarush.ru/groups/posts/793-vihzov-konstruktora-iz-konstruktora Вот проверь там про вызов конструктора из конструктора.
Artur20 уровень
3 июня, 09:52
Сначала тоже понял, что ничего не понял, хоть все и сработало. Оставил проверку задачки на потом. Ясность пришла, когда прочел ссылки от профессора в конце уровня. В общем, если я правильно понял, в нашем конструкторе с 2-мя параметрами мы через this(x, y ,10.0) вызываем конструктор с 3-мя параметрами, передаем ему x и y, которые мы приняли как входные параметры при создании нового объекта new Circle(10, 5), а радиус 10.0 добавили уже внутри "2-параметорового" конструктора и передали как 3-й параметр. 3-параметровый конструктор в свою очередь заполняет этими данными все 3 поля нового объекта. Таким образом, когда в методе main создается новый объект, то не важно, передадим мы 2 параметра в конструктор, 3 параметра, или не передадим вообще ни одного, но все равно, в конечном итоге сработает 3-параметровый конструктор. Поправьте, если я не прав. Задачка очень полезная.
NomakAnton9 уровень, Казань
9 июля, 14:43
Объяснил лучше чем в статье,спасибо друг!
Сергей9 уровень, Минск
27 июля, 17:58
спасибо.
Vladimir Kudryavtsev26 уровень, Москва
17 мая, 11:15
this(x, y, 10.0);
Sherlock040416 уровень, Москва
21 апреля, 17:15
C 3 раза, но точного понимания еще не пришло... но почему все пишут про 10.0?? Я просто написала 10 и нормально прошло..
progr7 уровень
4 августа, 22:39
потому что тип double
Alexander Klimin7 уровень, Москва
19 апреля, 13:30
прекрасно. мы этого не проходили, но задачу нужно решать) Да, пришлось почитать метод обращения к другим конструкторам. Да решил. Но черт возьми почти не понял как это работает.
progr7 уровень
4 августа, 22:40
я понял только одно, что лучше задачки оставлять на потом если не понимаешь как их решать. От такого подхода толку больше