我编写了一个程序,用户可以在其中选择两种游戏来玩:Pig 或 Snake。我尝试在我的主要方法中使用以下代码来创建适当类型的游戏:

if (gameType == 'p')
    PigGame game = new PigGame();
else
    SnakeGame game = new SnakeGame();

我的编译器指向第二行并给出错误:not a statement
我已经通过编写一个抽象类“Game”,然后创建它的 PigGame 和 SnakeGame 子类来解决这个问题:
Game game;
if (gameType == 'p')
    game = new PigGame();
else
    game = new SnakeGame();

但我不明白为什么第一个构造不起作用。 (我正准备教一门高中编程类(class),但我是 Java 和 OOP 的新手,所以我可以使用您提供的任何见解。)

最佳答案

问题是game的作用域在if和else里面

if (gameType == 'p')
    PigGame game = new PigGame();
else
    SnakeGame game = new SnakeGame();

所以你不能在其他任何地方使用它,这就是为什么你的第二段代码有效。

10-07 20:35