Java 线程中的异常无法读取构造函数中的值

Java 线程中的异常无法读取构造函数中的值,java,exception,Java,Exception,线程主线程java.lang.ArrayIndexOutOfBoundsException中的异常:索引0超出长度界限 我无法从用户读取构造函数中的值。首先,字段初始值设定项运行,然后构造函数运行。所以,如果你调用,比如说,新的checkMatrix2,2 int行 行现在为0 int列 列现在为0 int[][]矩阵=新int[行][列] 矩阵现在是一个0乘0的数组 现在我们转到构造函数中的行 this.row=行 this.column=列 row和colum现在是2。但是对于新的int[]

线程主线程java.lang.ArrayIndexOutOfBoundsException中的异常:索引0超出长度界限


我无法从用户读取构造函数中的值。首先,字段初始值设定项运行,然后构造函数运行。所以,如果你调用,比如说,新的checkMatrix2,2

int行

行现在为0

int列

列现在为0

int[][]矩阵=新int[行][列]

矩阵现在是一个0乘0的数组

现在我们转到构造函数中的行

this.row=行

this.column=列

row和colum现在是2。但是对于新的int[][]语句来说太晚了


将新的int[]语句移动到构造函数中,并将默认构造函数重写为this3,3,以避免重复此代码。

首先运行字段初始值设定项,然后运行构造函数。所以,如果你调用,比如说,新的checkMatrix2,2

int行

行现在为0

int列

列现在为0

int[][]矩阵=新int[行][列]

矩阵现在是一个0乘0的数组

现在我们转到构造函数中的行

this.row=行

this.column=列

row和colum现在是2。但是对于新的int[][]语句来说太晚了


将新的int[]语句移动到构造函数中,并将默认构造函数重写为this3,3,以避免重复此代码。

在哪一行发生此错误?int[][]矩阵=新int[行][列];这不受发送给构造函数的内容的影响,因此它始终为空。可能不是你肆意的什么,那会发生什么样的错误?int[][]矩阵=新int[行][列];这不受发送给构造函数的内容的影响,因此它始终为空。可能不是你想要的
    import java.util.Scanner;

//import jdk.javadoc.internal.doclets.formats.html.SourceToHTMLConverter;

class checkMatrix1 {
    int row;
    int column;
    int[][] matrix = new int[row][column];

    public checkMatrix1(int row, int column) {
        this.row = row;
        this.column = column;
    }
    public checkMatrix1() {
        this.row = 3;
        this.column = 3;
    }
}

public class test{
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.println(" Enter Row: ");
        System.out.println(" Enter Column: ");
        int row = input.nextInt();
        int column = input.nextInt();
        checkMatrix1 matrix1 = new checkMatrix1(row, column);

        for (int i = 0; i < matrix1.row; i++) {
            for (int j = 0; j < matrix1.column; j++) {
                System.out.println(matrix1.matrix[i][j]);
            }
        }
    }
}