Вопрос №382 от пользователя user-dcea3c8a28e5925f в уроке «Модуль 4. Урок 1. Условный оператор IF в Java.», курс «Введение в Java»

user-dcea3c8a28e5925f

при выполнении практики получил следующую ошибку: ./io/hexlet/java/m101/xo/view/ConsoleView.java:14: error: variable gameController might not have been initialized } ^ 1 error

вот код класса ConsoleView: package io.hexlet.java.m101.xo.view; import io.hexlet.java.m101.xo.controller.GameController;

public class ConsoleView { protected final GameController gameController;

public ConsoleView(final GameController gameController) {
    // BEGIN
      assert gameController != null;
   // END
}

public void showGameName() {
    System.out.println(gameController.getGameName());
}

public void showPlayersName() {
    System.out.println(gameController.getPlayers());
}

}

6 0

Александр-C Вагин

Добрый день! Даю подсказку:

int a;        // Декларация
int b = 0;    // Инициализация

И обратите внимание в Readme на раздел "Конструктор".

1

user-dcea3c8a28e5925f

спасибо! по этой ошибке прописал добавил строчку в метод public ConsoleView

this.gameController = gameController;

правильное ли это решение?

1

Александр-C Вагин

Смысл инициализации вы уловили, а вот логика в конструкторе (public ConsoleView - это конструктор, если что) должна быть другой. Читайте задание и пробуйте :)

0

user-dcea3c8a28e5925f

спасибо, пробовал разные варианты, и только текущий сработал без ошибки. подскажите, какой еще вариант логики в этом конструкторе может быть?

0

Александр-C Вагин

Я потерялся - что значит текущий? Вы видели вот эту строчку в задании? Банально нужно от входных параметров правильно проинициализировать имя игры: "Если в конструктор класса передали пустую строку или null, имя игры должно быть установлено в "XO"."

0

user-dcea3c8a28e5925f

Текущий - тот который указан в коде первого моего сообщения. Да, это задание для класса GameController, я подумал, что вы говорите о том что нужно изменить логику в том коде который привел в первом сообщении (указан код класса ConsoleView). Для GameController написал следующий код:

if (gameName == "" || gameName == null) {
       this.gameName = "XO";        
      }  else {
            this.gameName = gameName;
        }
1

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
25 мая 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
25 мая 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
25 мая 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
25 мая 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
25 мая 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
25 мая 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
25 мая 5 месяцев