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

“线程中的异常”;“主要”;java.lang.ArrayIndexOutOfBoundsException:索引0超出长度0的界限,java,Java,我使用eclipse(2019-12)进行Java编程 当我在程序下面运行任何输入时,它显示 线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:索引0超出长度0的界限 在Array.inputArr(Array.java:21) 位于App1.main(App1.java:6) 我不知道问题出在哪里 我的代码如下: Array.java package App; import java.util.*; class Array { i

我使用eclipse(2019-12)进行Java编程

当我在程序下面运行任何输入时,它显示

线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:索引0超出长度0的界限
在Array.inputArr(Array.java:21)
位于App1.main(App1.java:6)

我不知道问题出在哪里

我的代码如下:

Array.java

package App;
import java.util.*;
class Array
{
    int m, n;
    Scanner reader=new Scanner(System.in);
    void inputLen()
    {
        System.out.print("Please enter array row and column: ");
        m=reader.nextInt();
        n=reader.nextInt();
    }
    int[][] arr=new int[m][n];
    int i, j;
    void inputArr()
    {
        System.out.println("Please enter "+m+"*"+n+" array: ");
        for(i=0; i<m; i++)
            for(j=0; j<n; j++)
                arr[i][j]=reader.nextInt();
    }
    void sumColumn()
    {
        int[] colSum=new int[n];
        for(j=0; j<n; j++)
        {
            for(i=0; i<m; i++)
                colSum[j]+=arr[i][j];
            System.out.println("Column"+(j+1)+" sum="+colSum[j]);
        }
    }
}

创建矩阵时:
Array matrix=new Array()
m和n等于0。
您的阵列:

int[][] arr=new int[0][0];
试试这个:

int[][] arr;
void inputLen()
    {
        System.out.print("Please enter array row and column: ");
        m=reader.nextInt();
        n=reader.nextInt();
        arr = new int[m][n];
    }

在调用
inputLen()
之前创建数组,因此
m
n
0
,因此创建的是零长度数组。请注意,不鼓励创建名为
array
的类,因为这会使代码不明确。您应该使用不同的名称,如
MyArray
或类似的名称。
int[][] arr;
void inputLen()
    {
        System.out.print("Please enter array row and column: ");
        m=reader.nextInt();
        n=reader.nextInt();
        arr = new int[m][n];
    }