2D对象数组返回null

时间:2017-03-02 09:35:32

标签: java arrays

代码创建对象数组和toString方法。

import java.util.Arrays;
public class TicTacToeBoard extends BoardClass{

    private int turns;

    private XOClass[][] a;

    public TicTacToeBoard(int rows,int cols){
        super(rows,cols);
        XOClass[][]a = new XOClass[rows][cols];
        turns = 0;
    }
    public String toString(){
        return (Arrays.deepToString(a));
    }
}

对象类

public class XOClass{
    private String name;
    private static int turn=0; 

    public XOClass(){
        if (turn==0){
            this.name = "-";
        }
        if (turn==1){
            this.name = "X";
        }

        else{
            this.name = "O";

        }
    }

演示班

public class play {
   public static void main(String[] args){
       TicTacToeBoard tac = new TicTacToeBoard(3,3);
       System.out.println(tac);

    }
}

当调用类播放时,它返回null,因为数组中没有任何东西我的代码出错了。

1 个答案:

答案 0 :(得分:1)

在您的代码中:

XOClass[][]a = new XOClass[rows][cols];

  1. 只在方法中初始化新的XOClass,当方法结束时它不信任。 将其更改为

    a = new XOClass[rows][cols];

  2. 这意味着您已经创建了一个二维数组,其中包含“行”行。在第一行中有'cols'列。 并且所有行都为null。 现在您应该创建如下行:

  3. a[0] = new XOClass[cols];

    然后

        a[0][0]=new XOClass();