Всем доброго времени суток)) Объясните что здесь за магия?)
public class Game {
private static final String GAME_NAME = "XO";
private Player[] players;
public String getGameName() {
return GAME_NAME;
}
и есть класс
public class ConsoleView {
private final Game game;
public ConsoleView(final Game game) {
this.game = game;
}
public void showGameName() {
System.out.println(game.getGameName());
}
}
Так вот, не пойму что это за объявление поля такое?
private final Game game;
И я не могу через Game вызывать методы, а только через game.
Ключевое слово final по отношению к полям класса означает неизменяемость этого поля. То есть, после вызова:
public ConsoleView(final Game game) {
this.game = game;
}
Вы уже не сможете заменить объект game на другой объект (но поменять его состояние сможете).
И я не могу через Game вызывать методы, а только через game
Так как метод getGameName() класса Game не является статическим, то он может быть вызван только через экземпляр данного класса. Чтобы вызвать этот метод через Game Вам необходимо объявить его как static:
public static String getGameName() {
return GAME_NAME;
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники