好的,我正在制作我自己的 Matrix 类。我有一个转置矩阵的转置方法。这是 main 方法中的块
Matrix m1 = new Matrix(4,2);
m1.fillMatrix(1,2,3,4,5,6,7,8);
System.out.println("before " + m1.toString());
m1.transpose();
System.out.println("after " + m1.toString());
这就是它搞砸的地方,在 m1.transpose(); 在 transpose() 方法中
public Matrix transpose() {
if(isMatrix2) {
Matrix tempMatrix = new Matrix(row, col); // matrix2 contents are emptied once this line is executed
for(int i=0; i < row; i++) {
for(int j=0; j < col; j++)
tempMatrix.matrix2[i][j] = matrix2[i][j];
}
所以出于某种原因,tempMatrix.matrix2 的 id 与 this.matrix2 相同。所以当代码执行时
Matrix tempMatrix = new Matrix(row,col);
然后 this.matrix2 的内容被清空。有谁知道这里可能发生了什么?这些字段都是私有静态的,如果有帮助的话......