Испытания

java101 Наследование

Введение в Java

Краткое описание задания

Необходимо с нуля реализовать три класса: Game, TwoPlayersGame, ThreePlayersGame.

Первый из них — предок, второй — его наследник, а третий — наследник второго.

Файлы классов уже созданы — наполните их кодом.

Предисловие

Это задание заставит уделить внимание и предыдущим темам.

Структура проекта "ХО" опять перепилена. В этот раз для лучшей демонстрации наследования.

Детальное описание задания

Первым делом изучите структуру проекта, а потом реализуйте класс Game.

Класс Game:

  • должен быть public;
  • содержать private поля:
    • типа String с именем gameName = "XO" ;
    • типа Board с именем gameBoard, final, инициализация объекта в этой же строке;
  • содержать публичные методы:
    • getGameName, возвращает имя игры;
    • getGameBoard, возвращает объект доски;
    • setGameName, принимает на вход новое имя игры и устанавливает его в поле gameName.

Не забывайте указывать место класса в пакетах, и проверяйте количество открытых и закрытых скобок в коде!

Класс TwoPlayersGame:

  • должен быть public;
  • наследоваться от класса Game;
  • содержать private поля:
    • типа String с именем player1Name;
    • типа String с именем player2Name;
  • содержать публичные геттеры:
    • getPlayer1Name;
    • getPlayer2Name;
  • содержать публичные сеттеры:
    • setPlayer1Name;
    • setPlayer2Name;
  • содержать публичный метод printPlayers который ничего не возвращает и не принимает на вход, но печатает в консоль имена игроков текущего объекта. Для этого нужно воспользоваться методом System.out.printf или System.out.println.

Класс ThreePlayersGame:

  • должен быть public;
  • наследоваться от класса TwoPlayersGame;
  • содержать private поле типа String с именем player3Name;
  • содержать публичный геттер getPlayer3Name;
  • содержать публичный сеттер setPlayer3Name;
  • содержать публичный метод printPlayers который ничего не возвращает и не принимает на вход, но печатает в консоль имена игроков текущего объекта. Для этого нужно воспользоваться методом System.out.printf или System.out.println. Да-да, забегая в следующий урок, переопределяем метод. :)

Проверяйте код, "набивайте" глаз и руки. Задавайте вопросы и аргументируйте свои решения в коде. Ждем ваших ревью.

Послесловие

Вы в этом задании своими руками реализовали переопределение метода, а именно printPlayers. А это задел на следующую тему: @Override. И вообще, метода printPlayers не должно быть в классах, которые относятся к моделям. Но ввиду того, что еще не пройдены темы массивов, условных операторов и циклов — оставим это так.

Настоятельно рекомендую изучить код классов Main и PrintGame. Обратите внимание на то, как используются методы класса PrintGame, какие туда передаются объекты.

Вам ничто не мешает скопировать себе этот код и поиграться с ним локально, поисследовать.

Успешных завершений: 84%

Для полного доступа к испытанию нужна профессиональная подписка

Профессиональная подписка откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, даст возможность обращаться за помощью к менторам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
115
курсов
892
упражнения
2241
час теории
3196
тестов

Последние код-ревью

Автор Дата обновления Версий
user-c570a63315242130 07 авг., 10:52 1
user-7880a4b8570e1a23 05 авг., 20:43 1
giantcherry 02 авг., 12:30 1
sun 02 авг., 11:49 1
user-d179a85f7a5a5482 31 июля, 08:30 1