Java 对象范围,从方法引用

标签 java oop object

我在头脑中弄清范围时遇到了一些困难。我明白为什么下面的代码不起作用,但我从概念上不明白我应该如何做。

public class Game {

    private String playerName = "";
    private int numberOfPegs = 0;
    private boolean gameRunning = "True";


    public static void main(String[] args) {

        Game game = new Game();
        game.setupGame();
        game.playGame();
    }

    public void setupGame() {

        Display display = new Display();
        Code code = new Code();
        display.showGreeting();
        playerName = display.getUserInput("Enter your name: ");
        numberOfPegs = Integer.parseInt(display.getUserInput("How many pegs would you like?"));
        code.generateNewCode(numberOfPegs);
    }

    public void playGame() {
        String result = display.getGuess();

    }
}

我知道为什么我无法从 playGame() 调用 display.getGuess(),因为 display 超出了范围。我不明白如何正确执行此操作。我是否为该方法创建一个新实例 Display() ,这感觉不太正确。我觉得在处理多​​个对象时我缺少面向对象的概念。

最佳答案

display设置为实例字段,然后在setupGame()方法中对其进行初始化。

private String playerName = "";
private int numberOfPegs = 0;
private boolean gameRunning = "True";
private Display display;


public static void main(String[] args) {

    Game game = new Game();
    game.setupGame();
    game.playGame();
}

public void setupGame() {

    display = new Display();
    Code code = new Code();
    display.showGreeting();
    playerName = display.getUserInput("Enter your name: ");
    numberOfPegs = Integer.parseInt(display.getUserInput("How many pegs would you like?"));
    code.generateNewCode(numberOfPegs);
}

public void playGame() {
    String result = display.getGuess();

}

声明成员时无需实例化成员。当您声明成员而不实例化时,它将采用其默认值; 0 表示数字类型,false 表示 booleannull 表示 Object 类型。所以在这种情况下,

private int numberOfPegs = 0;

与以下内容相同:

private int numberOfPegs;

关于Java 对象范围,从方法引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32120821/

相关文章:

c++ - 是否可以从对象而不是类注册 QML 类型?

Java使用String.format进行十进制格式化?

java - Kafka 2.9.1 生产者 0.8.2.1 编译与运行时依赖关系

java - 如何在java中使用 "closure-compiler "

Javascript对象数组然后删除元素

javascript - 如何使用for/in循环遍历js中的对象?

java - 在 GWT 中创建具有向下钻取功能的下拉菜单。

java - 嵌套静态类无法返回其静态字段

java - DDD 聚合根,如何创建不同类型的新子聚合元素?工厂方法?

ruby - 如何在 Ruby 中创建复制构造函数