Was ist ein Kopiekonstruktor in Java

Was ist ein Kopiekonstruktor in Java
In Java kann es Fälle geben, in denen der Entwickler die Werte gemäß den Anforderungen neu zuteilen muss. Wenn Sie beispielsweise die Konstruktoreinträge von Zeit zu Zeit aktualisieren. In solchen Fällen die “Konstruktor kopierenIn Java wird hilfreich bei der Änderung der Code -Funktionen gemäß den angegebenen Anforderungen.

In diesem Artikel wird die Verwendung des „Konstruktors kopieren“ mit Java erörtert.

Was ist ein „Kopierkonstruktor“ in Java?

Der "Konstruktor kopieren”Entspricht einem Konstruktor, der ein Objekt erstellt/macht, indem es mit dem zuvor erstellten identischen Klassenobjekt initialisiert wird. Um einen Kopierkonstruktor zu erstellen, wird das vorhandene Klassenobjekt als Argument platziert und die Werte von Instanzvariablen werden mit den im Objekt akkumulierten Werten initialisiert.

Beispiel 1: Anwenden eines "Konstruktors kopieren", um die "zugewiesenen" Objektwerte in Java zu kopieren

In diesem Beispiel wird das verwendetKonstruktor kopieren”Kopieren Sie die zugewiesenen Objektwerte aus einem anderen erstellten Objekt, indem Sie das zugewiesene Objekt als Argument einwickeln:

klassifüre
Zeichenfolge Name;
int Alter;
Profil (Zeichenfolge Name, int Alter)
Das.Name = Name;
Das.Alter = Alter;

Profil (Profil OB)
System.aus.println ("Konstruktor kopieren!");
Das.Name = ob.Name;
Das.Alter = ob.Alter;

Wenden Sie im obigen Klassencode die folgenden Schritte an:

  • Definieren Sie zunächst eine Klasse namens “Profil”.
  • Geben Sie in seiner Definition die bereitgestellten Variablen an.
  • Fügen Sie danach den Klassenkonstruktor ein, der die angegebenen Parameter umfasst, die mit den angegebenen identisch sind.
  • In der Konstruktordefinition finden Sie in den angegebenen Variablen über “Das”Und weisen Sie ihnen die bestandenen Argumente zu.
  • Erstellen Sie nun einen Kopierkonstruktor mit dem angegebenen Parameter.
  • Notiz:obIn den Kopiekonstruktor zeigt auf das erstellte Klassenobjekt.
  • Beziehen Sie sich in seiner Definition ebenfalls auf die angegebenen Variablen und weisen Sie ihnen die bereits zugewiesenen Werte über das übergebene Objekt zu.

Lassen Sie uns nun zu den folgenden Codezeilen übergehen:

öffentlicher Klassenkundungsstruktur
public static void main (String args [])
Profil Object1 = neues Profil ("Harry", 18);
Profil Object2 = neues Profil (Objekt1);
System.aus.println ("\ nbefore Modifying -Werte:");
System.aus.println (Objekt1.Name + "" + Objekt1.Alter);
System.aus.println (Object2.Name + "" + Object2.Alter);
Objekt2.Alter = 24;
System.aus.println ("\ nafter modifizieren Werte:");
System.aus.println (Objekt1.Name + "" + Objekt1.Alter);
System.aus.println (Object2.Name + "" + Object2.Alter);

Nach diesem Code:

  • Erstellen Sie die Klassenobjekte mit der “neu"Schlüsselwort und das"Profil()Konstruktor.
  • Das erstere Objekt entspricht dem ersten Klassenkonstruktor, der die angegebenen Werte umfasst.
  • Letzteres erstellte Objekt bezieht sich auf den Kopierkonstruktor.
  • Zeigen Sie nun die Objektwerte nacheinander an.
  • Zu diesem Zeitpunkt zeigen beide Objektwerte identische Werte, da das erstere Objekt als das letztere (kopierte) Konstruktor -Argument eingewickelt ist.
  • Stellen Sie im nächsten Schritt dem letzteren Objekt einen neuen Wert zu.
  • Zuletzt die aktualisierten Objektwerte nach der Zuordnung anzeigen.

Ganzer Code

Klassenprofil
Zeichenfolge Name;
int Alter;
Profil (Zeichenfolge Name, int Alter)
Das.Name = Name;
Das.Alter = Alter;

Profil (Profil OB)
System.aus.println ("Konstruktor kopieren!");
Das.Name = ob.Name;
Das.Alter = ob.Alter;
öffentlicher Klassenkundungsstruktur
public static void main (String args [])
Profil Object1 = neues Profil ("Harry", 18);
Profil Object2 = neues Profil (Objekt1);
System.aus.println ("\ nbefore Modifying -Werte:");
System.aus.println (Objekt1.Name + "" + Objekt1.Alter);
System.aus.println (Object2.Name + "" + Object2.Alter);
Objekt2.Alter = 24;
System.aus.println ("\ nafter modifizieren Werte:");
System.aus.println (Objekt1.Name + "" + Objekt1.Alter);
System.aus.println (Object2.Name + "" + Object2.Alter);

Ausgang

In dieser Ausgabe kann analysiert werden.

Stellen Sie vor dem nächsten Beispiel das folgende Paket ein, um die Benutzereingabe zu aktivieren:

Java importieren.Util.Scanner;

Beispiel 2: Anwenden eines "Konstruktors kopieren", um die Objektwerte "Benutzereingabe" in Java zu kopieren

In diesem Beispiel das “Konstruktor kopieren”Kann angewendet werden, um die Werte der Benutzereingabefiele zu kopieren, indem das bereits erstellte Klassenobjekt als Konstruktor -Argument des letzteren Objekts akkumulieren:

classprofiledata
Zeichenfolge Name; int Alter;
Profiledata (String -Name, int Age)
Das.Name = Name;
Das.Alter = Alter;
Profiledata (Profiledata ob)
System.aus.println ("Konstruktor kopieren!");
Das.Name = ob.Name; Das.Alter = ob.Alter;
voidshow ()
System.aus.println ("Der Name ist:"+dies.Name);
System.aus.println ("Das Alter ist:"+dies.Alter);
publicClassCopyConstructor2
publicStaticvoidMain (String args [])
Scannerobjekt = neuer Scanner (System.In);
System.aus.println ("den Namen eingeben:");
String name = Objekt.nächste Zeile();
System.aus.println ("das Alter eingeben:");
int Alter = Objekt.NextInt ();
Profiledata Object1 = neue Profiledata (Name, Alter);
Objekt1.zeigen();
Profiledata Object2 = New Profiledata (Object1);
Objekt2.zeigen(); Objekt.schließen();

Wenden Sie die folgenden Schritte an, wie in den oben genannten Codezeilen angegeben:

  • Erinnern Sie sich an die diskutierten Ansätze zur Definition einer Klasse und einschließlich des Konstruktors bzw. des Kopierkonstruktors.
  • Definieren Sie danach die mit dem Namen benannte Funktion “zeigen()Um die übergebenen Objektwerte anzuzeigen.
  • Im "hauptsächlich()"Methode, erstellen Sie eine"Scanner”Objekt mit der“neu"Schlüsselwort und das"Scanner()Konstruktor.
  • Der "System.In"Parameter liest die Benutzereingabe" "nächste Zeile()" und das "NextInt ()"Methoden stellen sicher, dass die Benutzereingabe als"Saite", Und "Ganze Zahl", bzw.
  • Erstellen Sie nun ein Klassenobjekt namens “Objekt1”Über den diskutierten Ansatz und übergeben Sie die Benutzereingabewerte als Argumente. Zeigen Sie diese Werte auch über die aufgerufene Klassenfunktion an “zeigen()”.
  • Erstellen Sie im nächsten Schritt ein anderes Klassenobjekt und übergeben Sie das frühere Objekt als Argument des Kopierkonstruktors, sodass sich die Benutzerwerte zuvor in diesem Objekt akkumuliert haben.
  • Zuletzt zeigen Sie die Werte mithilfe der auf Zugriffsfunktion “zeigen()"Und schließen Sie das"Scanner"Mit Hilfe des Assoziierten"schließen()" Methode.

Ausgang

Das obige Ergebnis bedeutet, dass der Kopierkonstruktor aufgerufen wird und die Objektwerte entsprechend akkumuliert werden.

Abschluss

Der "Konstruktor kopieren”In Java entspricht einem Konstruktor, der ein Objekt erstellt/macht, indem es mit dem gleichen/identischen Klassenobjekt initialisiert wird, das zuvor erstellt wurde. Dieser Konstruktor funktioniert so, dass das bereits erstellte Objekt als Argument eingewickelt wird. Dieser Blog leitete und implementiert das “Konstruktor kopieren”In Java.