Neo

  • 7
  • Недоступна
Давайте инициализируем пользователя номер один по имени Нео. Для этого реализуем интерфейс DBObject в классе User, и метод initializeIdAndName так, чтобы программа работала и выводила на экран «The user's name is Neo, id = 1».
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (85)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Askar16 уровень
24 апреля, 17:41
Объясните пжлста. Что значит это: %s, %d" ?
Yerzhan18 уровень
25 апреля, 06:06
это значит вывести s - строковую переменную, а d - десятичное целое, надеюсь, что не ошибаюсь.
Askar16 уровень
25 апреля, 15:53
Спасибо!
Максим18 уровень
16 апреля, 09:39
Я тоже первый раз написал так:
@Override
public DBObject initializeIdAndName(long id, String name) {
Ребята, кто объяснит на пальцах почему так не правильно?
Yerzhan18 уровень
25 апреля, 06:27
я думаю, что так DBObject - интерфейс, а в методе создаем объект типа DBObject. но создать объект интерфейса нельзя, потому создаем объект User, так и в задании написано.
fedor20 уровень, Москва
8 апреля, 14:11
вот тут предел негодования: оба варианта дают идентичный итог, но 2й не пропускается
@Override
public User initializeIdAndName(long id, String name) {
тип интерфейса может быть использован для экземпляров классов, которые реализуют интерфейс
@Override
public DBObject initializeIdAndName(long id, String name) {
DenisKa19 уровень, Екатеринбург
12 марта, 12:39
Как писал пользователь rotarru: "Из непонятой теории. Главы 8-9 Философия джава. Когда реализуешь метод интерфейса в классе, можно переписать тип возвращаемого методом объекта. Тип может быть не только типом интерфейса, но и типом класса, который реализует данный интерфейс."
Владимир Павленко22 уровень, Москва
19 февраля, 17:09
задача уже такая была и опять я ступил return this; - надо запонмить!!!!!
Максим Василенко13 уровень, Киев
23 мая, 11:51
wtf return this? это где такое было уже???
Торник22 уровень, Москва
19 февраля, 15:24
VDT16 уровень, Екатеринбург
10 февраля, 12:24
Я называю такие задачи - "Подгони результат под валидатор"
public User initializeIdAndName...
И
public DBObject initializeIdAndName ...
Выдают один и тот же результат. Но валидатору виднее.
NewBuy23 уровень, Санкт-Петербург
22 февраля, 18:57
На самом деле нет. Объект тип User мы сможем присвоить переменной типа User, как и переменной типа DBObject (второе и происходит в классе Matrix). Это позволит нам, например, вызывать методы, которые есть только в классе User, и которых нет в DBObject. Но объект типа DBObject мы уже не сможем присвоить переменной типа User, по крайней мере без явного приведения. То-есть фактически ваше решение позволяет решить поставленную задачу, но мне кажется такое решение это что-то вроде антипатерна.
Ivan Kozlovich20 уровень, Санкт-Петербург
25 января, 12:21
Валидатор на сайте принял, а Идея ругается на строку 31 (подсвечивает красным namе и id) и не компилирует.
Tatiana Bogdanova15 уровень, Санкт-Петербург
16 января, 08:57
Что значит фраза: "Реализовать интерфейс в классе ?" Это класс имплементит интерфейс ?
8 марта, 15:48
Именно.
S3R3N1TY35 уровень, Санкт-Петербург
10 января, 16:49
Ребят легко можно проверить какой тип вернет метод, если мы ставим return this с типом DBObject или меняем тип на User. Просто в коде напишите User. и после точки идея подскажет какой тип вернет метод. Разница есть ! Хотя мы и вызываем метод на User.но вернет тот ТИП который указан в Переопределнном методе (там кстатим мы можем сменить тип)  Или он все таки вернет тип обьекта на котором вызыван метод ? Если на юзере User вызовем то отдаст User ?
S3R3N1TY35 уровень, Санкт-Петербург
10 января, 17:04
Сделал вот такую проверку, чтобы понять ЧТО все таки возвращает метод ! Смотрите сами: я поменял тип переменной и как видите Не смотря на то, что вызываем метод на User то возвращается менно тот ТИП который указан в реализации нашего метода. А как же this ?