Hi!
Ich habe da eine komische Sache entdeckt! Ich habe in einer Klasse 2 Attribute (hilfsMatrix + originalMatrix). Diese sind vom Typ her Objekte einer anderen Klasse (Matrix). Dann erstelle ich eine Instanz von Matrix und weise diese originalMatrix zu. Die hilfsMatrix ist zu diesem Zeitpunkt null.
Dann folgt dieser Codeabschnitt:
Komisch dabei ist, das die originalMatrix nicht verändert wird. Aber ich teile doch hilfsMatrix die gleiche Referenz zu. Ich meine, es passt mir, dass die originalMatrix nicht verändert wird, aber sollte es eigentlich nicht so sein?
2.
Ich übergebe originalMatrix einer anderen Klasse in den Konstruktor. Die andere Klasse hat wieder 2 Attribute (m1 + m2) vom Typ Matrix. Wenn ich dort das gleiche wie oben mache also m1=originalMatrix und danach m1 verändere, dann wird die originalMatrix verändert (in der Klasse, welche diese aufruft)
Ich hoffe ich hab das nicht zu verwirrend erklärt!
Kann mir da jemand sagen wie und warum? Danke!
Ich habe da eine komische Sache entdeckt! Ich habe in einer Klasse 2 Attribute (hilfsMatrix + originalMatrix). Diese sind vom Typ her Objekte einer anderen Klasse (Matrix). Dann erstelle ich eine Instanz von Matrix und weise diese originalMatrix zu. Die hilfsMatrix ist zu diesem Zeitpunkt null.
Dann folgt dieser Codeabschnitt:
Code:
MatrizenMultiplikation mm = new MatrizenMultiplikation();
hilfsMatrix=originalMatrix;
for(int i=1; i<x; i++)
{
hilfsMatrix = mm.multiplikation(hilfsMatrix, originalMatrix);
}
Komisch dabei ist, das die originalMatrix nicht verändert wird. Aber ich teile doch hilfsMatrix die gleiche Referenz zu. Ich meine, es passt mir, dass die originalMatrix nicht verändert wird, aber sollte es eigentlich nicht so sein?
2.
Ich übergebe originalMatrix einer anderen Klasse in den Konstruktor. Die andere Klasse hat wieder 2 Attribute (m1 + m2) vom Typ Matrix. Wenn ich dort das gleiche wie oben mache also m1=originalMatrix und danach m1 verändere, dann wird die originalMatrix verändert (in der Klasse, welche diese aufruft)
Ich hoffe ich hab das nicht zu verwirrend erklärt!
Kann mir da jemand sagen wie und warum? Danke!