有:我的浅拷贝构造函数有问题

时间:2015-02-28 01:00:43

标签: java constructor copy shallow-copy

我的java作业有问题。 我正在制作一个Matrice类,我在使用另一个Matrice作为参数的浅构造函数时遇到了麻烦。

Public class Matrice implements IMatrice{

private static int numLignes ;
private static int numColonnes ;
private static ArrayList<Double> elements  ;

public Matrice(int numLignes, int numColonnes ) {
        this.numColonnes = numColonnes ;
        this.numLignes = numLignes ;

}

public Matrice(int numLignes, int numColonnes , double valeurs ){
    this(numLignes,numColonnes);
    this.elements = new ArrayList<>(numLignes * numColonnes);
    for(int i = 0 ;i< numLignes * numColonnes;i++){
        elements.add(valeurs);
    }




}

public Matrice(int numLignes, int numColonnes , double[] elements ) {
        this(numLignes,numColonnes);
        this.elements = new ArrayList<>() ;
        for(int i = 0 ;i<numLignes * numColonnes;i++){
            this.elements.add(elements[i]);

    }
}
public Matrice(Matrice autreMatrice) {
    numColonnes = autreMatrice.getNumColonnes();
    numLignes = autreMatrice.getNumLignes();

}

我的浅拷贝构造函数是对的吗? 因为当我运行我的老师主要测试时,它说我错了。 我的老师主要测试中存在错误,但我对此表示怀疑。

谢谢!

2 个答案:

答案 0 :(得分:0)

您还需要复制其他矩阵内容,而不仅仅是维度。

答案 1 :(得分:-1)

你可以尝试这样做而不是getNumColonnes()

public Matrice(Matrice autreMatrice)
{
 autreMatrice.setNumColonnes(numColonnes);
 autreMatrice.setNumLignes(numLignes);
}

如果你有setNumColonnes和setNumLines方法,它应该可以工作。