Hallo zusammen
Wie man ein Objekt clont ist ja überall gut beschrieben. Offensichtlich fünktioniert das bei allen auch gut, nur bei mir nicht. Ich habe auch schon ne Lösung gefunden, welche aber Fragen aufwirft welche ich hier gerne gelöst haben möchte.
Also ich habe eine Klasse namens Matrix, welche ich gerne clonen möchte
Um ein geklontes Objekt zu erstellen müssen ja praktisch 2 Sachen durchgeführt werden.
1.) Speicherstelle für das Objekt anlegen ... und
2.) Den angelegten Speicher mit dem Inhalt füllen
Überall im Netz finde ich sowas für das Anlegen des Speichers:
Meine Clone-Variable möchte ich natürlich an eine andere Stelle geschrieben haben als mein "Mutter"-Objekt, weil ich einfach 2 verschiedene Objekte haben möchte --> Das ist ja der Sinn des Klonens ..oder?
Wenn cih das obige Beispiel anwende, ist die Variable lediglich eine Referenz auf das Mutterobjekt.
Wenn ich ein tatsächliches geklontes Objekt haben will muss ich es durch folgenden Konstruktoraufruf erstellen:
Das ist ja nicht der Sinn von "super.clone()" oder?
Also nun meine Frage: Was ist der Sinn des folgenden Aufrufs, welchen ich an so vielen Stellen im Netz finde?
Danke und Gruss ;-)
Wie man ein Objekt clont ist ja überall gut beschrieben. Offensichtlich fünktioniert das bei allen auch gut, nur bei mir nicht. Ich habe auch schon ne Lösung gefunden, welche aber Fragen aufwirft welche ich hier gerne gelöst haben möchte.
Also ich habe eine Klasse namens Matrix, welche ich gerne clonen möchte
Um ein geklontes Objekt zu erstellen müssen ja praktisch 2 Sachen durchgeführt werden.
1.) Speicherstelle für das Objekt anlegen ... und
2.) Den angelegten Speicher mit dem Inhalt füllen
Überall im Netz finde ich sowas für das Anlegen des Speichers:
Code:
Matrix<E> myMatrix = (Matrix<E>) super.clone();
Meine Clone-Variable möchte ich natürlich an eine andere Stelle geschrieben haben als mein "Mutter"-Objekt, weil ich einfach 2 verschiedene Objekte haben möchte --> Das ist ja der Sinn des Klonens ..oder?
Wenn cih das obige Beispiel anwende, ist die Variable lediglich eine Referenz auf das Mutterobjekt.
Wenn ich ein tatsächliches geklontes Objekt haben will muss ich es durch folgenden Konstruktoraufruf erstellen:
Code:
Matrix<E> myMatrix = new Matrix<E>(this.sizeX(), this.sizeY());
Das ist ja nicht der Sinn von "super.clone()" oder?
Also nun meine Frage: Was ist der Sinn des folgenden Aufrufs, welchen ich an so vielen Stellen im Netz finde?
Code:
Matrix<E> myMatrix = (Matrix<E>) super.clone();
Danke und Gruss ;-)