我编写了一个程序,用户可以在其中选择两种游戏来玩: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();
所以你不能在其他任何地方使用它,这就是为什么你的第二段代码有效。