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