我正在尝试制作一种垄断类型的游戏,这是我对这个问题提出的第二个问题。我是董事会班和广场班。在我的主类中,我使用我的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的原因。如果您尝试覆盖的方法不存在,则会输出错误,本质上是为您检查拼写。

10-05 17:57