Используя значение типа int, которое находится в другом файле класса? - PullRequest
0 голосов
/ 13 апреля 2011

Я хочу использовать значение int, которое находится в Gui.class, в DrawPanel1.class, как мне легко передать значение int из класса в файл класса? Мое значение int:

/* Gui.java */ static int gamestate = 1;

Я хочу уменьшить игровое состояние на 1, в DrawPanel.java, в buttonHandler, вот так:

/*DrawPanel.java */ 
    class StartNewGameHandler implements ActionListener{
     public void actionPerformed( ActionEvent e ){
                    gamestate--;
     }
}

Ответы [ 4 ]

1 голос
/ 13 апреля 2011

Если вы действительно хотите напрямую получить доступ к статической переменной, вы можете использовать:

Gui.gamestate--;

Однако я настоятельно рекомендую вам держать переменные закрытыми (кроме констант) и обращаться к ним через свойства. Изменяемые статические переменные тоже часто плохая идея.

0 голосов
/ 13 апреля 2011

Стандартный способ ООП для передачи данных между классами использует геттеры / сеттеры:

class Gui {
    private int gameState;

    public void setGameState(int gameState) {
        this.gameState = gameState;
    }
}

Конечно, вы можете использовать статическую переменную, но это обычно считается плохой практикой.

0 голосов
/ 13 апреля 2011

Вы просто делаете это public как:

public static int gamestate = 1;

и затем вы называете это статически:

Gui.gamestate
0 голосов
/ 13 апреля 2011

Если Gui и DrawPanel находятся в одном пакете, вы можете использовать

Gui.gamestate--

иначе вы должны объявить игровое состояние как общедоступное а затем позвоните

Gui.gamestate--

...