我的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();
}
我的浅拷贝构造函数是对的吗? 因为当我运行我的老师主要测试时,它说我错了。 我的老师主要测试中存在错误,但我对此表示怀疑。
谢谢!答案 0 :(得分:0)
您还需要复制其他矩阵内容,而不仅仅是维度。
答案 1 :(得分:-1)
你可以尝试这样做而不是getNumColonnes()
public Matrice(Matrice autreMatrice)
{
autreMatrice.setNumColonnes(numColonnes);
autreMatrice.setNumLignes(numLignes);
}
如果你有setNumColonnes和setNumLines方法,它应该可以工作。