ООП - книги

  • 16
  • Недоступна
В этой задаче будем создавать книги земных авторов Марка Твена и Агаты Кристи. Разумеется, с помощью классов MarkTwainBook и AgathaChristieBook, которые наследуется от Book. В этих классах нужно реализовать все абстрактные методы, а в родительском классе реализуйте тело метода getOutputByBookType.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (331)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Farhad15 уровень, Казань
вчера, 16:05
Разве не логично было бы, обьявить данный метод абстрактным, и реализовать каждую версию в своем классе?
private String getOutputByBookType()
Или я чего то не понимаю?
Dmitry Guryev15 уровень, Нижний Новгород
вчера, 11:08
хорошая задача на принципы ООП (коротко о том что такое наследование) ))
Михаил Клименко15 уровень, Краснодар
вчера, 17:43
Для себя узнал, что в конструкторе сначала обслуживаем переменные родителя, потомки в это время терпеливо ждут :)
Ivan18 уровень, Череповец
17 June, 18:06
Хороша задача, подумать пришлось + первый раз потыкал Debug (многое не понятно, но очень интересно)
Anatoly Khalabov17 уровень, Челябинск
16 June, 15:05
Может кому поможет: 1- При создании и переопределении методов классов родителей пользуйтесь горячими клавишами "Alt+insert" 2- "Конструктор класса должен вызывать конструктор класса предка (Book) с параметром "Mark Twain" узнал, что оказывается можно делать вот так:
super("Mark Twain");
 this.title=author;
3- "Возвращать текущий объект" это
return this;
4-"Должен возвращать название конкретной книги" не забывайте использовать this 5-" Должен возвращать корректную строку для объектов типа"
if(author.equals("Mark Twain")){
                return markTwainOutput;
            }
            return agathaChristieOutput;
6- У меня все😁
Ivan18 уровень, Череповец
17 June, 18:00
Я вот раньше думал, что это нормально - решение в обсуждение закинуть, задал вопрос в "Помощь" и получил развёрнутый ответ по ссылке https://javarush.ru/help/48705, и мнение своё изменил. Вы же здесь не помогли, опубликовав готовое решение, а отобрали самое интересное в решении задачи.
Anatoly Khalabov17 уровень, Челябинск
18 June, 07:52
Извиняюсь, если лишил Вас приятных мук решения, но я не выкладывал готового решения, я выкладывал конструкции, которые помогли мне в решении данной задачи.
Ivan18 уровень, Череповец
18 June, 08:18
Я удовольствие и необходимые знания получил. Я и раньше не обращал внимания на готовые решения, если уж заходил в "Обсуждение" за подсказкой, собственно, в вопросе по ссылке я всё это описал. Не поленитесь, прочитайте ответ по ссылке https://javarush.ru/help/48705. А вот насчёт готового решения, здесь поспорю. Приведённые конструкции и есть решение, всё остальное в задаче выполняется чётко по требованиям (инструкциям) без каких-то особых мук.
Andrew Grini (AG)15 уровень, Кишинев
24 June, 19:25
Привет, есть люди, которые намного легче так воспринимают и заучивают информацию. То что у вас отобрали самое интересное, это "самое интересное" чисто ваше)), я могу только благодарить и благодарить ребят, которые не жалеют время и помогают нам глубже вникнуть в суть. К примеру, мне очень интересно решив задачу, посмотреть как её решили коллеги, это меня очень вдохновляет и развивает. Захожу в комментарии после решения задач, и смотрю как мыслят другие люди.
Ivan18 уровень, Череповец
24 June, 21:22
Привет. Я уже догадался, когда ссылку на JavaRush красиво прикладываешь, она куда-то девается. https://javarush.ru/help/48705 Там всё описано, я был того же мнения примерно, что и вы, но всё поменялось.
Ivan18 уровень, Череповец
24 June, 21:37
Для тех, кому лень по ссылке читать: "Публиковать решения нельзя и в разделе Обсуждение, другое дело что на это сквозь пальцы смотрят. Смысла публиковать свое решение там нет никакого. Те люди, у которых действительно классное решение, красивое, правильное по ряду причин никогда там его не опубликуют. Только программисты, которые имеют несколько лет опыта на работе, могут написать хорошее, качественное решение, которое достойно внимания. Публиковать свои поделки, это распространять свои ошибки, много легковнушаемых людей прочитают и к своим ошибкам будут добавлять чужие. Для тех кто застрял - есть раздел Помощь, пусть спрашивают - помогут. Давать им готовые решение это не уважать их. Это как прийти на тренировку марафонцев, взять самого уставшего, и воспользовавшись его беспомощностью и упадком сил, усадить на автомобиль и довезти к финишу. Это насилие над человеком. Это забрать у человека возможность преодолеть, развиться, перейти на следующий качественный уровень, это отбросить человека назад в его развитии. Это не помощь, это издевательство, тот кто помогает таким образом - ставит себя выше остальных, это высокомерность. Я снизойду до вас, неспособных, и дам решение. Вот общий алгоритм решения или какие-то точечные моменты описать, это да, в Обсуждении писать можно. А код...Это все-равно, чтобы была возможность в учебники младшей школы добавлять варианты ответов учеников. Я пашел за малаком, схадил к артадонту, и мине стала лудше! Зачем это читать другим? Оно же все в памяти откладывается. Другим такое не нужно. Пример качественного кода нужно. Но кто его может дать, я уже написал - только практикующий программист с опытом. Учебные упражнения, учебный код, решил, да и пошел дальше. В Помощи никаких готовых решений. В Обсуждении можно какие-то подсказки давать или общий алгоритм своими словами." Автор: Justinian 41 уровень, Киев
Anatoly Khalabov17 уровень, Челябинск
25 June, 05:20
Мне кажется вы не совсем понимаете что такое "Готовое решение", в моем сообщении нет готового решения, в нем есть несколько конструкций, которые помогли мне в решении и мои умозаключения. Я не претендую на универсальность и правильность этих конструкций, я просто поделился тем, что помогло бы мне в решении данной задачи. Я часто захожу в раздел обсуждений после решения задачи, или во время решения, если зашел в тупик, и мне важно найти именно такие конструкции, которые могут натолкнуть меня на правильное решение, а если это еще и будет с подробным объяснением или ссылкой на статью, цены нет таким комментариям. Единственное, что на мой взгляд я сделал не правильно, это не дал подробное описание каждой конструкции.
Ivan18 уровень, Череповец
25 June, 09:30
Но сам факт, в спорте очень важен этот момент преодоления, когда сил уже нет, а надо бежать. Это ключевой момент. С одной стороны можно назвать это трудностью. Но это прежде всего и возможность. Стать сильнее, наработать спортивный характер, физическую форму, практически все современные методики и спортивная наука ходит вокруг того, чтобы загнать человека в стресс, и именно в нем происходит развитие и раскрытие спортсмена, работа над качественным уровнем. Если у начинающего боксера, время от времени возникают проблемы в ринге, противник сильнее, и каждый раз будет выбегать условный батяня Кличко/Поветкин, метелить соперника и убегать, то что будет с спортивной карьерой и уровнем этого боксера не сложно представить. Он никогда не разовьется в зрелого спортсмена. Потому что у него заберут эту возможность. Поэтому часто, даже если и просят, не нужно помогать. А иногда нужно, это только на глаз определяется. Человек должен встретить проблемы лицом к лицу. И должен либо научится принимать поражение либо преододеть.Это бесценный навык, который очень много может дать, многие известные люди в биографиях вспоминают о поражениях, которые стали ключевым фактором для просто взрывного роста мотивации, силы воли и достижений. Поражение выбивает из седла, и заставляет мобилизировать ресурсы. Не решил задачу. Ок не решил, и что? Сидеть и плакать в уголочке? Ждать пока добрый дядя поможет и решит вместо? Собери волю в кулак, встань и иди! Не можешь идти - ползи! Не можешь ползти, перекатывайся. Программирование схоже, всегда будут очень сложные и нерешаемые задачи. Всегда будут практически непобедимые соперники, которые лучше во всем. Надо научиться жить в этих условиях. Принять правила игры, и научиться фокусироваться на цели и идти к ней, несмотря ни на что. Автор: Justinian 41 уровень, Киев
Ivan18 уровень, Череповец
25 June, 09:44
Собственно вы и опубликовали ответы на те места, где действительно нужно было подумать, а всё остальное в задаче для тех, кто добрался до 15-го уровня не должно вызывать сложностей, да, это не совсем "готовое решение", тут ещё надо подумать куда вставить конструкции в задаче. Предлагаю не тратить время на эти споры, впереди ещё много задач.
Mike19 уровень, Москва
29 June, 14:06
Пока задачу не решу в комменты вообще не лезу!)
Ivan18 уровень, Череповец
29 June, 19:50
Каждому своё.
Bio BoJlk16 уровень, Москва
6 June, 09:00
Записал имя авторов с [ ] - 1 попытка
Nikita16 уровень, Одесса
10 June, 16:42
Нафиг ты это пишешь? Боже, какая разница сколько попыток, чем больше тем лучше
Егор17 уровень, Хабаровск
12 June, 05:35
да тут большинство комментариев типа "посмотрите какой я молодец, решил все с закрытыми глазами пока принимал душ, жонглируя мочалками", "я прошел 180 уровней за полчаса", "всё решил, материи три миллиона"
Bio BoJlk16 уровень, Москва
18 June, 18:21
А где ты тут видишь, что я указал сколько я попыток потратил? Я лишь указал на возможную проблему, намекая на то, что валидатор это не пропустит и будет минус одна попытка.
Andrew Grini (AG)15 уровень, Кишинев
24 June, 19:27
Никита у нас тут "типа" коллектива который изучает и делится своими впечатлениями и помогает друг другу. Пусть люди делятся впечатлениями, это же прекрасно что вы тут не один, и не среди роботов :DDD
Alexander Chevtaev20 уровень, Bogorodsk
6 June, 06:12
час где-то потратил времени на решение (но все по честному, в камменты не подглядывал). Для проверки объекта использовал if + instanceof
Алексей Алхутов17 уровень, Nizhnevartovsk
4 June, 08:06
Всего 3 вечера сидел думал, а 4 день с утра все само в голову пришло, конечно без комментов время понадобилось бы больше. Сложно понималось как правильно написать конструктор и зачем нужен
super("Agatha Christie");
Проверка по if в
getOutputByBookType()
через instanceof самый легкий момент, хотя сначала думал, почему не проходит запись
Book instanceof AgathaChristieBook
, но потом все встало на свои места, ведь мы и так находимся в классе Book, а значит нужно просто this. B попытка ушла еще на правильное написание "Agatha Christie", а не "AgathaChristie"
Ксенія Українка22 уровень, Киев
30 May, 19:31
Юху! Шикарно! У меня в 1й валидации ВСЕ требования не выполнены.
Alukard19 уровень, London
22 June, 14:08
😆😆😆
Михаил Клименко15 уровень, Краснодар
вчера, 17:53
В каком свете теперь видится этот антирекорд на 22 уровне? :) Тонкая, качественная мотивация :)
Ксенія Українка22 уровень, Киев
вчера, 18:53
та нормально. там все красное потому что сделала в отдельных классах.
Александр Вострухин17 уровень, Новосибирск
27 May, 15:55
Я самый внимательный чувак на свете: потратил сутки(!!!) на то чтобы понять, какого гейтса у меня не компилится рабочий код - оказывается создал классы Марка и Агаты внутри класса Book..
Виталий16 уровень, Симферополь
18 May, 05:44
Подскажите пожалуйста - как в методе private String getOutputByBookType() определяется какой тип записать в переменную agathaChristieOutput, а какой М. Твену?
Dmitry Gorchakov23 уровень, Москва
18 May, 08:42
с помощью instance of получаешь объект через геттер, проверяешь принадлежность к классу и присваиваешь переменной output
Яков20 уровень, Москва
23 May, 09:38
Я прошёл путем проверки автора через equals .
Виталий16 уровень, Симферополь
26 May, 08:48
спасибо!