数组打印出零

时间:2013-09-04 06:25:43

标签: java arrays

我有这个程序从用户获取输入并创建数组。然后,用户还将指定要放入数组的值。我的程序能够从用户那里获得输入并能够打印出来。但是当我添加处理这些输入并返回它的额外方法时,程序会继续打印出零。我无法识别我的代码中的错误。我怀疑这个错误是在数组传递中的某个地方。我想从错误中吸取教训并予以纠正。请帮我查看我的密码并查看错误所在。我已经包含了部分代码,我认为问题可能存在。

提前谢谢!!!

代码:

class Matrix {
int size;
int matrix[][];
public Matrix() {}

public Matrix(int matrix[][],int size) {
    this.size = size;
    this.matrix = new int[size][size];

}

public int [][] opt(String op, String t){

    if(op.equals("Reflect")){

        if(type.equals("x")){
            rX();
        }

    }
    return matrix;
}

private void rX(){
    int i;
    int j;

    int array[][] = new int[size][size];

    for (i=0; i< size; i++){
        for (j=0; j < size; j++){
            array[size-(i+1)][j] = matrix[i][j];
        }
       matrix = array;

    }

class Transform {
public static void main(String[] args) {

    Matrix matrix = new Matrix(tempArray, size);
    opt = sc.nextInt();

 for (i=0; i<opt; i++){
        String op = sc.next();
        String t = sc.next();
        tempArray = matrix.opt(op,t);

    }

   }

1 个答案:

答案 0 :(得分:2)

问题在于如何在类构造函数中初始化数组:

public Matrix(int matrix[][],int size) {
    this.size = size;
    this.matrix = new int[size][size];
}

通常,当您通过构造函数传递参数时,它们用于初始化类变量。我想你想要考虑的是这种变化:

public Matrix(int matrix[][],int size) {
    this.size = size;
    this.matrix = matrix;
}

this.matrix引用名为matrix的类变量,第二个矩阵变量引用名为matrix的参数变量。这样,参数int matrix [] []将用于初始化Matrix实例中的int double数组,并且您的矩阵将不再是全零。