Hallo allerseits,
ich habe eine Klasse, deren Konstruktor folgendermassen lautet:
An einer anderen Stelle erstelle ich wiederum ein Array aus eben Objekten dieser Klasse und verändere mit Hilfe eigener public - Methoden (von MagicSquare) das Array "quadrat". Das mache ich, indem ich eine Schleife durchlaufen lasse und somit die einzelnen Objekte anspreche. Problem ist, dass nach dem Schleifendurchlauf alle Objekte dieselben Werte im Array haben.
Ich denke das liegt daran, dass das Array nicht richtig geclont wurde, sondern die einzelnen Objekte jeweils nur einen Verweis auf das übergebene Array besitzen. Ich dachte allerdings, dass man richtige Kopien mit clone() (oder arraycopy() )erstellt. Oder wie soll das funktionieren.
Ich hoffe ich konnte mich verständlich machen. Danke für eventuelle Antworten.
gruss maatze
ich habe eine Klasse, deren Konstruktor folgendermassen lautet:
Code:
...
int[][] quadrat;
int magicsum;
public MagicSquare(int dimension,int[][] quadrat)
{
magicsum = dimension*((dimension*dimension)+1)/2;
this.dimension = dimension;
this.quadrat = (int[][])quadrat.clone();
}
An einer anderen Stelle erstelle ich wiederum ein Array aus eben Objekten dieser Klasse und verändere mit Hilfe eigener public - Methoden (von MagicSquare) das Array "quadrat". Das mache ich, indem ich eine Schleife durchlaufen lasse und somit die einzelnen Objekte anspreche. Problem ist, dass nach dem Schleifendurchlauf alle Objekte dieselben Werte im Array haben.
Ich denke das liegt daran, dass das Array nicht richtig geclont wurde, sondern die einzelnen Objekte jeweils nur einen Verweis auf das übergebene Array besitzen. Ich dachte allerdings, dass man richtige Kopien mit clone() (oder arraycopy() )erstellt. Oder wie soll das funktionieren.
Ich hoffe ich konnte mich verständlich machen. Danke für eventuelle Antworten.
gruss maatze