わかりましたので、独自の Matrix クラスを作成しています。そして、行列を転置する転置メソッドがあります。これはメインメソッドのブロックです
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 は this.matrix2 と同じ ID を持っています。そのため、コードが実行されると
Matrix tempMatrix = new Matrix(row,col);
次に、this.matrix2 の内容が空になります。ここで何が起こっているのか知っている人はいますか?それが役立つ場合、フィールドはすべてプライベート静的です...