Heim > Java > javaLernprogramm > Hauptteil

Flache Kopie und tiefe Kopie in JAVA

黄舟
Freigeben: 2016-12-20 13:31:43
Original
1400 Leute haben es durchsucht

1. Konzepte der flachen Kopie und der tiefen Kopie

⑴Flache Kopie (flacher Klon)

Alle Variablen des kopierten Objekts enthalten dieselben Werte wie das Originalobjekt, und alle Verweise auf andere Objekte bleiben Punkte zum Originalobjekt. Mit anderen Worten: Eine flache Kopie kopiert nur das betreffende Objekt, nicht die Objekte, auf die sie verweist.

⑵ Deep Copy (Deep Clone)

Alle Variablen des kopierten Objekts enthalten die gleichen Werte wie das Originalobjekt, mit Ausnahme von diese Referenzen Variablen anderer Objekte. Variablen, die auf andere Objekte verweisen, verweisen auf die kopierten neuen Objekte und nicht auf die ursprünglich referenzierten Objekte. Mit anderen Worten: Beim Deep Copy werden alle Objekte kopiert, auf die das zu kopierende Objekt verweist.

2. Javas clone()-Methode

⑴ Die clone-Methode kopiert das Objekt und gibt es an den Aufrufer zurück. Im Allgemeinen erfüllt die clone()-Methode Folgendes:

① Für jedes Objekt x gibt es x.clone() !=x//Das geklonte Objekt ist nicht dasselbe Objekt wie das Originalobjekt

② Für jedes Objekt Wenn die Definition angemessen ist, sollte x.clone().equals(x) gelten.

⑵Klonen von Objekten in Java

①Um eine Kopie des Objekts zu erhalten, können wir die clone()-Methode der Object-Klasse verwenden.

② Überschreiben Sie die clone()-Methode der Basisklasse in der abgeleiteten Klasse und deklarieren Sie sie als öffentlich.

③Rufen Sie in der clone()-Methode der abgeleiteten Klasse super.clone() auf.

④Implementieren Sie die Cloneable-Schnittstelle in der abgeleiteten Klasse.

Bitte beachten Sie den folgenden Code:

class Student implementiert Cloneable

{

String name;

int age;

Student(String name,int age)

{

this.name=name;

this. age =age;

}

public Object clone()

{

Object o=null;

try

{

o=(Student)super.clone();//Der clone() in Object identifiziert, welches

// Objekt Sie kopieren möchten.

}

Catch(CloneNotSupportedException e)

{

System.out.PRintln(e.toString());

}

return o;

}

}

public static void main(String[] args)

{

Student s1=new Student("zhangsan",18);

Student s2=(Student)s1.clone();

Das Obige ist in JAVA Für den Inhalt von Shallow Copy und Deep Copy beachten Sie bitte die chinesische PHP-Website (m.sbmmt.com), um weitere verwandte Inhalte zu erhalten!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!