Java 贾维:我的浅拷贝构造函数有问题
我的java作业有问题。 我正在创建一个Matrice类,并且我在使用以另一个Matrice作为参数的浅层构造函数时遇到了问题Java 贾维:我的浅拷贝构造函数有问题,java,constructor,copy,shallow-copy,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 numLigne
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();
}
公共类矩阵实现IMatrice{
私有静态整数;
私有静态整数;
私有静态数组列表元素;
公共矩阵(整数、整数){
this.numcolones=numcolones;
this.numlinges=numlinges;
}
公共矩阵(整数、整数、双值){
这(numlinges,numcolones);
this.elements=新的ArrayList(numlinges*numColones);
对于(int i=0;i 对于(inti=0;i您可以尝试这样做,而不是getNumColones()
如果您有setNumColones和setNumLines方法,它应该可以工作。您需要复制其他矩阵内容,而不仅仅是维度。它是一个复制构造函数,而不是复制方法。很抱歉,我误读了代码。您只需更改autreMatrice NumColones和NumLines
public Matrice(Matrice autreMatrice)
{
autreMatrice.setNumColonnes(numColonnes);
autreMatrice.setNumLignes(numLignes);
}