您的位置:首页 > 编程语言 > Java开发

java中返回临时对象的问题,求大神破解

2014-05-22 10:36 344 查看
我写了个矩阵类,遇到了临时变量返回值都为0的情况,以下用矩阵转置的例子来细说下:

类定义:

class Matrix{

 private int row,column;   //矩阵的行和列

 private double array[][]; //数组的引用

 public Matrix transpose(Matrix m)    //矩阵转置实现

    {

    Matrix temp = new Matrix(m.column, m.row); //不能返回临时变量temp

    for(int i=0; i<m.row; i++){

    for(int j=0; j<m.column; j++){

    temp.array[j][i] = m.array[i][j];

    }

    }

    return temp;

    }

}

调用:

double [][]aa = {{1,1,2},{4,2,5}}; 
Matrix a = new Matrix(aa);  //用二维数组建立并初始化一个矩阵
Matrix b = new Matrix(3,2);//建立一个空的3x2的矩阵
b.transpose(a);
a.showMatrix();
b.showMatrix();

输出结果为:

1.0 1.0
2.0
4.0 2.0
5.0
0.0 0.0
0.0 0.0
0.0 0.0

按照这个结果,也就是说这里的临时对象不能返回给b对象,导致b的值依然为0.我把temp改成this之后计算的结果就正确了。

但是这个博客里说到,是可以返回临时对象的:http://blog.csdn.net/shkkhd/article/details/1829584

孰对孰错?为什么?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 临时变量 空值