0

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

先感谢您!!!

代码:

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);

    }

   }
4

1 回答 1

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 变量引用名为 matrix 的参数变量。这样,参数 int matrix[][] 将用于初始化 Matrix 实例中的 int double 数组,并且您的矩阵将不再全为零。

于 2013-09-04T06:37:29.000 回答