In diesem Artikel werden hauptsächlich relevante Informationen zur Verwendung von clone() in Java vorgestellt. Ich hoffe, dass dieser Artikel jedem helfen kann, die Klonmethode von clone() zu beherrschen.
So verwenden Sie clone() in Java
Vorwort:
Klonen bedeutet Kopieren durch das Objekt. es wird also kopiert. Um ein Objekt zu kopieren, müssen Sie zunächst einen Raum mit der gleichen Größe wie das Quellobjekt zuweisen und in diesem Raum ein neues Objekt erstellen. In der Java-Sprache gibt es also:
1 Verwenden Sie den neuen Operator, um ein Objekt zu erstellen.
2 Verwenden Sie die Klonmethode, um ein Objekt zu kopieren Objekt
Was sind also die Gemeinsamkeiten und Unterschiede zwischen diesen beiden Methoden? Die ursprüngliche Absicht des neuen Betreibers besteht darin, Speicher zuzuweisen. Wenn das Programm den neuen Operator ausführt, prüft es zunächst den Typ hinter dem neuen Operator, denn nur wenn wir den Typ kennen, können wir wissen, wie viel Speicherplatz wir zuweisen müssen. Rufen Sie nach dem Zuweisen des Speichers den Konstruktor auf, um jedes Feld des Objekts auszufüllen. Dieser Schritt wird als Objektinitialisierung bezeichnet. Nach der Rückkehr des Konstruktors wird ein Objekt erstellt und seine Referenz (Adresse) kann nach außen veröffentlicht werden Diese Referenz manipuliert das Objekt. Der erste Schritt des Klonens ähnelt dem Neu. Beim Aufruf der Klonmethode entspricht der zugewiesene Speicher dem des Quellobjekts (d. h. dem Objekt, das die Klonmethode aufruft) und dann den entsprechenden Feldern Das ursprüngliche Objekt wird zum Ausfüllen verwendet. Nachdem das Feld des neuen Objekts ausgefüllt ist, kehrt die Klonmethode zurück, ein neues und identisches Objekt wird erstellt und die Referenz dieses neuen Objekts kann auch nach außen veröffentlicht werden.
package test; public class Cloneoo { public static void main(String[] args) { test t=new test(); t.changeInt(); System.out.println(t); try { test t1=(test) t.clone();//创建 System.out.println(t1); System.out.println(t1.getI()); } catch (CloneNotSupportedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } class test implements Cloneable{ private int i=0; public void setI(int i) { this.i = i; } public int getI() { return i; } public void changeInt(){ this.i=1; } @Override protected Object clone() throws CloneNotSupportedException { // TODO Auto-generated method stub test t=null; t=(test) super.clone(); return t; } }
test.test@15db9742 test.test@6d06d69c 1
Wenn die Klasse einige Objekte enthält, müssen wir sie tief kopieren, also nachher Kopieren Sie das Objekt und rufen Sie schnell die Klonmethode für die nicht grundlegenden Typattribute im Objekt auf, um die tiefe Kopie abzuschließen.
Die Klonmethode führt eine flache Kopie durch
Das obige ist der detaillierte Inhalt vonTeilen Sie Beispiele für die Verwendung von clone() in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!