Java 基于传递参数问题初始化大小为类的全局数组

Java 基于传递参数问题初始化大小为类的全局数组,java,arrays,class,Java,Arrays,Class,我有一个名为matrixDec的类,请参见下面的代码,我要做的是将2个变量传递到构造函数中,然后使用这些变量初始化一个具有维度矩阵[row][col]的数组。我遇到的问题是,当运行我的程序时,我遇到了一个越界错误。我怀疑这是因为当我调用matrixDec类时,整数行和列的全局版本在构造函数被调用之前就被初始化为null或0,所以数组开始于0,0或null,null 现在,我希望数组能够在我的整个类中被操纵,我希望它具有维度行,列 您不能在那里初始化矩阵,因为行和列还没有赋值,所以它们是默认的0

我有一个名为matrixDec的类,请参见下面的代码,我要做的是将2个变量传递到构造函数中,然后使用这些变量初始化一个具有维度矩阵[row][col]的数组。我遇到的问题是,当运行我的程序时,我遇到了一个越界错误。我怀疑这是因为当我调用matrixDec类时,整数行和列的全局版本在构造函数被调用之前就被初始化为null或0,所以数组开始于0,0或null,null

现在,我希望数组能够在我的整个类中被操纵,我希望它具有维度行,列

您不能在那里初始化矩阵,因为行和列还没有赋值,所以它们是默认的0

在构造函数中也使用初始化矩阵

this.row = row;
this.col = col;
matrix = new String[row][col];

您需要在构造函数中初始化数组,而不是在声明数组时。像这样:

public class matrixIni {
    private int row;
    private int col;    
    private String matrix[][];

    //constructor for calss matricDec
    public matrixIni(int row, int col){
        this.row = row;
        this.col = col;
        matrix[][] = new String[row][col]

        //matrix[1][1] = "test";
         //System.out.println(matrix[1][1]);
    }
}

请注意,public void matrixIniint row,int col不是构造函数,而是类方法。在Java中,构造函数没有返回类型。几年过去了,谢谢你指出这一点。
public class matrixIni {
    private int row;
    private int col;    
    private String matrix[][];

    //constructor for calss matricDec
    public matrixIni(int row, int col){
        this.row = row;
        this.col = col;
        matrix[][] = new String[row][col]

        //matrix[1][1] = "test";
         //System.out.println(matrix[1][1]);
    }
}