我正在尝试制作一种垄断类型的游戏,这是我对这个问题提出的第二个问题。我是董事会班和广场班。在我的主类中,我使用我的Board类中的一种称为addSquare
的方法创建正方形,然后该方法将有关特定正方形的信息存储在Square类中。之后,我试图从getSquare
方法中的Board类读取某个正方形,但是我不知道该怎么做。
我提供的测试解决方案仅用于测试电路板结构:
主类:
public class Main {
public static void main(String[] args) {
Board board = new Board();
Action act = new Action();
board.addSquare("0,Country in conflict.", act);
board.getSquare(0);
}
}
董事会班:
public class Board {
public ArrayList<Square> Board;
public Board(){
this.Board = new ArrayList<Square>();
}
public void addSquare(String square, Action action){
Square sq = new Square(square, action);
Board.add(sq);
}
public void addSquare(String square, Action action1, Action action2){
Square sq = new Square(square, action1, action2);
Board.add(sq);
}
public void getSquare(int square){
Board.get(square);
}
}
方类:
public class Square{
public ArrayList<Action> actions;
public final String text;
public final int squareNumber;
public Square(String textGiven, Action action){
String textArray[] = textGiven.split(",");
this.squareNumber = Integer.parseInt(textArray[0]);
this.text = textArray[1];
this.actions = new ArrayList<Action>();
actions.add(action);
}
public Square(String textGiven, Action action1, Action action2){
String textArray[] = textGiven.split(",");
this.squareNumber = Integer.parseInt(textArray[0]);
this.text = textArray[1];
this.actions = new ArrayList<Action>();
actions.add(action1);
actions.add(action2);
}
public Action getAction(Action action){
return action;
}
public int getNumber(){
return squareNumber;
}
public String getText(){
return text;
}
public String toSrting(){
return squareNumber + ". " + text;
}
}
注意:无论说什么,动作都是玩家需要执行的动作的单独类别。我正确地上了课,所以这就是为什么我不提供信息,但是如果需要的话,我将使用Action类的代码进行更新。
最佳答案
get
在这里返回一个Square
,但是您根本没有使用它:
public void getSquare(int square){
Board.get(square);
}
与所有其他
getXXX
方法一样,getSquare
应该返回一个值:public Square getSquare(int square){
return Board.get(square);
}
您可能已经知道,您可以通过
System.out.println
打印返回的值:System.out.println(board.getSquare(0));
我还注意到您拼错了
toString
:public String toSrting(){ // <----
return squareNumber + ". " + text;
}
这就是为什么在覆盖方法时应始终添加
@Override
的原因。如果您尝试覆盖的方法不存在,则会输出错误,本质上是为您检查拼写。