试图将国际象棋游戏的图表转换为java代码(摘要)

时间:2013-07-13 14:31:59

标签: java oop class-diagram chess

我正在尝试将此图转换为java代码,以便了解可以提出的设计问题。

例如,我将写为

的Piecetype枚举
public enum PieceType{
    pawn, king, queen, rook, bishop, knight
}

我想知道是否有人可以提供有关如何将类图转换为java代码的指导,只是简单地采用图中显示的类之一并编写java中提到的属性和方法。

我大部分时间都很难搞清楚+和 - 。

enter image description here

2 个答案:

答案 0 :(得分:4)

+-指的是公开程度:

Symbol  Visibility
------  ----------
+       Public 
-       Private 
#       Protected 
/       Derived (can be combined with one of the others)
_       Static

source

答案 1 :(得分:1)

首先,您应该学习如何在尝试使用Java实现它之前正确读取类图。 +-定义了类成员的可见性(例如字段或方法)。 +表示公共可见类成员,而-表示私有成员,即只能从定义它的类访问。

转换为Java类(Game)的示例:

public class Game {
   private List<Move> playedMoves;
   private PieceColor turn;
   private Players[] players;
   private Result result;
   private CheckStatus checkStatus;

   public Game() {
     playedMoves = new ArrayList<Move>(); // create empty list
     // TODO initialize other fields properly
   }

   public void addMove(Move move) {
     playedMoves.add(move);
   }

   public boolean isCheckmated() {
     return CheckStatus.BlackCheckmated.equals(checkStatus) || 
            CheckStatus.WhiteCheckmated.equals(checkStatus);
   }

   // TODO add other methods
}

<强>参考文献: