Java的;全局类实例?

时间:2016-07-29 00:38:03

标签: java global-variables global

作为一种培养我的编程技巧的方法(到目前为止,我已经上了一门课),我给自己做了一个自我指定的项目。我正在努力建立一个可玩的国际象棋游戏。

方法:我想设计它,因此会有一个位置(列和行)的类,一个类型(int表示,int值,字符串名称,运动x)的类,其中移动是来自另一个类的引用。

然后,有一个方形类(位置,类型)。例如,每个正方形将被赋予一个位置和一个类型(例如空,典当等)。我想在square或'play'类之外初始化每种类型,因为我希望这些类型是预定义的。因此,当我声明Square 1 = new Square(P1,EMPTY)时,我可以使用预设类型和位置初始化方块。问题是我需要将'Empty'声明为全局类型,我不知道该怎么做。有谁看到我能做到这一点的方式?非常感谢您的帮助。如果有帮助,我正在使用oracle版本。

1 个答案:

答案 0 :(得分:0)

我不会选择“类型”,因为根据与之相关的棋子来改变类型并不太有意义。如果您坚持下去,那就这样吧,并按照评论中的建议使用enum

public enum SquareType {
    KING, QUEEN, ... , EMPTY
}

如果我不想这样做,而我不这样做,我会做两件事之一:

  1. 抛弃position件并将其替换为Square,因为这也是位置。
  2. Square中添加对棋子的引用;如果引用为null,则表示它为空。
  3. 因为一块棋子不能放在棋盘上而不是在正方形上,所以你可以通过这种方式减少冗余,并且不需要“全局”标识符。

    在分配游戏板时,我会制作一个2D阵列(也建议),我会这样做:

    // For a non-empty square
    board[row][col] = new Square(new ChessPiece(...), ...);
    // For an empty square
    board[row][col] = new Square(null, ...);