JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Подскажите, в чем дело? Выводит верно. Уже очень долго му...
Иван Хардиков
22 уровень
  • 16.05.2018
  • 1653просмотров
  • 13комментариев

Подскажите, в чем дело? Выводит верно. Уже очень долго мучаюсь с этой задачей

Вопрос по задаче Куриная фабрика
Java Core,  4 уровень,  6 лекция
Решен


Давай напишем Фабрику (Factory) по производству кур (Hen):

  1. Создай класс Hen.
    1. Сделай его абстрактным.
    2. Добавь в класс абстрактный метод int getCountOfEggsPerMonth().
    3. Добавь в класс метод String getDescription(), который возвращает строку "Я - курица.".
  2. Создай класс RussianHen, который наследуется от Hen.
  3. Создай класс UkrainianHen, который наследуется от Hen.
  4. Создай класс MoldovanHen, который наследуется от Hen.
  5. Создай класс BelarusianHen, который наследуется от Hen.
  6. В каждом из четырех последних классов напиши свою реализацию метода getCountOfEggsPerMonth.
    Методы должны возвращать количество яиц в месяц от данного типа куриц.
  7. В каждом из четырех последних классов напиши свою реализацию метода getDescription.

    Методы должны возвращать строку вида:
    <getDescription() родительского класса> + <" Моя страна - Sssss. Я несу N яиц в месяц.">
    где Sssss - название страны
    где N - количество яиц в месяц

  8. В классе HenFactory реализуй метод getHen, который возвращает соответствующую стране породу кур.
  9. Все созданные классы должны быть в отдельных файлах.

Требования:
  • Класс Hen должен быть абстрактным.
  • Класс Hen должен содержать абстрактный метод int getCountOfEggsPerMonth().
  • В классе Hen должен быть реализован метод String getDescription(), который возвращает строку "Я - курица.".
  • Классы RussianHen, UkrainianHen, MoldovanHen и BelarusianHen должны наследоваться от класса Hen и быть созданы в отдельных файлах.
  • Классы RussianHen, UkrainianHen, MoldovanHen и BelarusianHen должны реализовывать метод getCountOfEggsPerMonth, который должен возвращать количество яиц в месяц от данного типа куриц.
  • Классы RussianHen, UkrainianHen, MoldovanHen и BelarusianHen должны переопределять метод getDescription родительского класса таким образом, чтобы возвращаемая ими строка имела вид: <getDescription() родительского класса> + < Моя страна - Sssss. Я несу N яиц в месяц.> где Sssss - название страны, а N - количество яиц в месяц.
  • Метод getHen должен быть реализован в классе HenFactory и возвращать тип кур для переданной в него страны.
package com.javarush.task.task14.task1408; /* Куриная фабрика */ public class Solution { public static void main(String[] args) { Hen hen = HenFactory.getHen(Country.BELARUS); hen.getCountOfEggsPerMonth(); } static class HenFactory implements Country { static Hen getHen(String country) { Hen hen = null; if (country.equals(Country.BELARUS)) { Hen belarusianHen = new BelarusianHen(); return belarusianHen; } else if (country.equals(Country.MOLDOVA)) { Hen moldovanHen = new MoldovanHen(); return moldovanHen; } else if (country.equals(Country.RUSSIA)) { Hen russianHen = new RussianHen(); return russianHen; } else if (country.equals(Country.UKRAINE)) { Hen ukrainianHen = new UkrainianHen(); return ukrainianHen; } else return hen; } } }
+2
Комментарии (13)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
NodeOne
Уровень 41
Expert
16 мая 2018, 08:28
Вроде ясно написано: <getDescription() родительского класса> + < Моя страна - Sssss. Я несу N яиц в месяц.> где Sssss - название страны, а N - количество яиц в месяц. а вы только super.getDescription(); возвращаете. Ну и реализуйте метод getHen в классе Hen
0
Иван Хардиков
Уровень 22
16 мая 2018, 09:04
Метод удалил случайно, спасибо за подсказку) Но вот не понял замечания про возврат. Взял все, что после return в (), но тем не менее не помогло.
0
NodeOne
Уровень 41
Expert
16 мая 2018, 17:24
Пункт 7 задания. Должно быть return super.getDescription()+" Моя страна - "+Country.RUSSIA+". Я несу "+getCountOfEggsPerMonth()+" яиц в месяц.";
0
NodeOne
Уровень 41
Expert
16 мая 2018, 17:25
Ну и классы из Solution конечно поудаляйте, они должны быть в отдельных файлах.
0
Иван Хардиков
Уровень 22
17 мая 2018, 09:34
Не помогло. Классы, конечно, повыносил в отдельные файлы. Но валидатор до сих пор не засчитывает шестой пункт, вот, что мне ментор подсказывает: Описание курицы UkrainianHen должно соответствовать формату "getDescription() родительского класса + Моя страна - Ukraine. Я несу N яиц в месяц.", где N - число яиц в месяц(возвращаемое методом getCountOfEggsPerMonth. Например: Я - курица. Моя страна - Ukraine. Я несу 5 яиц в месяц.
+2
Roman Pryshchepa Java Developer Expert
17 мая 2018, 10:59
Выложи окончательный код либо в комментарии, либо в новом вопросе, либо в текущем (нажми Управление - Редактировать - Сними чекбокс прикрепления кода - Отредактировать, потом повторить, но уже с включением чекбокса).
0
Иван Хардиков
Уровень 22
17 мая 2018, 13:36
Сделано
0
Roman Pryshchepa Java Developer Expert
17 мая 2018, 13:51решение
Судя по проверке ты должен получать рекомендацию: Описание курицы RussianHen должно соответствовать формату "getDescription() родительского класса + Моя страна - Russia. Я несу N яиц в месяц.", где N - число яиц в месяц(возвращаемое методом getCountOfEggsPerMonth. Например: Я - курица. Моя страна - Russia. Я несу 5 яиц в месяц. Согласно нее и нужно проверить класс RussianHen. (скорее всего, ты уже исправил ошибки в UkrainianHen)
+5
Иван Хардиков
Уровень 22
17 мая 2018, 17:14
ахаха)))) Вы решили задачу с 16 попытки) Точки не хватало в конце предложения. Два дня задача решалась.
+2
Евгений Беспалов
Уровень 41
13 декабря 2020, 21:30
пятая попытка из-за точки в конце, просто ппц
0
Евгений Беспалов
Уровень 41
13 декабря 2020, 21:31
и главное, все найдут ошибку в коде,хотя её там нет,не про твой конкретный случай
0
Николай Водитель в ИП
3 апреля 2021, 12:44
благодаря твоему комменту решил с 4 попытки(3 попытки были потрачены из-за этой гребаной точки) спасибо))
0
Ярослав Java Developer Master
16 мая 2018, 08:24
Зачем ты создал все классы внутри Solution, если у тебя все эти классы в отдельных файлах?
+3
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRush JavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2025 JavaRush
MastercardVisa
"Программистами не рождаются" © 2025 JavaRush