Was ist der Unterschied zwischen dem Copy Constructor und dem Zuweisungsoperator?

Das Hauptunterschied zwischen Kopierkonstruktor und Zuweisungsoperator ist das Der Kopierkonstruktor ist ein Typ von Konstruktor, der beim Erstellen einer Kopie eines bereits vorhandenen Objekts hilft, ohne die Werte des ursprünglichen Objekts zu beeinflussen, während der Zuweisungsoperator ein Operator ist, der einer Variablen im Programm einen neuen Wert zuweist.

Ein Konstruktor ist eine spezielle Methode, mit deren Hilfe ein Objekt beim Erstellen initialisiert werden kann. Es hat den gleichen Namen wie der Klassenname und hat keinen Rückgabetyp. Ein Programmierer kann einen Konstruktor schreiben, um den Instanzvariablen in der Klasse Anfangswerte zu geben. Wenn sich im Programm kein Konstruktor befindet, wird der Standardkonstruktor aufgerufen. Kopierkonstruktor ist ein Typ von Konstruktor, mit dem eine Kopie eines vorhandenen Objekts erstellt werden kann. Auf der anderen Seite hilft der Zuweisungsoperator, einer Variablen einen neuen Wert zuzuweisen.

Wichtige Bereiche

1. Was ist Copy Constructor?
     - Definition, Funktionalität
2. Was ist der Zuweisungsoperator?
     - Definition, Funktionalität
3. Was ist der Unterschied zwischen dem Copy Constructor und dem Zuweisungsoperator?
     - Vergleich der wichtigsten Unterschiede

Schlüsselbegriffe

Konstruktor, Kopierkonstruktor, Zuweisungsoperator, Variable

Was ist Copy Constructor?

Bei der Programmierung ist es manchmal erforderlich, eine separate Kopie eines Objekts zu erstellen, ohne das Originalobjekt zu beeinflussen. Der Copy-Konstruktor ist in diesen Situationen hilfreich. Es ermöglicht das Erstellen einer Replikation eines vorhandenen Objekts derselben Klasse. Siehe das unten stehende Beispiel.

Abbildung 1: Programm mit Kopierkonstruktor

Das Klasse Dreieck verfügt über zwei Instanzvariablen, die als Basis und Höhe bezeichnet werden. In Zeile 8 gibt es einen parametrisierten Konstruktor. Es braucht zwei Argumente. Diese Werte werden den Instanzvariablen base und height zugewiesen. In Zeile 13 befindet sich ein Kopierkonstruktor. Es bedarf eines Arguments vom Typ Dreieck. Der Basiswert eines neuen Objekts wird der Instanzvariablenbasis zugewiesen. In ähnlicher Weise wird der Höhenwert des neuen Objekts der Instanzvariablenhöhe zugewiesen. Darüber hinaus gibt es eine Methode namens calArea, um den Bereich zu berechnen und zurückzugeben.

In der Hauptmethode sind t1 und t2 Dreieckobjekte. Das Objekt t1 wird beim Erstellen des Objekts t2 übergeben. Der Kopierkonstruktor wird aufgerufen, um ein T2-Objekt zu erstellen. Daher ist die Basis und die Höhe des Objekts t2 der Basis und der Höhe des Objekts t1. Schließlich haben beide Objekte die gleiche Fläche.    

Was ist der Zuweisungsoperator?

Ein Zuweisungsoperator ist hilfreich, um einer Variablen einen neuen Wert zuzuweisen. Der Zuweisungsoperator ist "=". Wenn es eine Aussage gibt als c = a + b; Die Summe von 'a' und 'b' wird der Variablen 'c' zugewiesen..

Abbildung 2: Programm mit Zuweisungsoperator

Die Klasse Number hat eine Instanzvariable namens num. In Zeile 7 befindet sich kein Parameter-Konstruktor. In Zeile 9 befindet sich jedoch ein parametrisierter Konstruktor. Er nimmt ein Argument und weist es der Instanzvariablen mithilfe des Zuweisungsoperators zu. In Zeile 12 gibt es eine Methode namens display, um die Nummer anzuzeigen. In der Hauptmethode sind num1 und num2 zwei Objekte vom Typ Number. Durch das Drucken von num1 und num2 erhalten Sie die Referenzen zu diesen Objekten. Die Nummer 3 ist vom Typ Nummer. In Zeile 24 wird num1 mit dem Zuweisungsoperator num1 zugewiesen. Num3 bezieht sich daher auf das Objekt num1. Das Drucken von Nummer 3 gibt also die Nummer von Nummer 1 an.  

Der Zuweisungsoperator und seine Variationen sind wie folgt.

Operator

Funktionalität

Beispiel

=

Weist den rechten Operanden dem linken Operanden zu

 z = x + y

+=

Fügen Sie den rechten Operanden zum linken Operanden hinzu und weisen Sie das Ergebnis dem linken Operanden zu

z + = y ist äquivalent zu z = z + y

- =

Ziehen Sie den rechten Operanden vom linken Operanden ab und weisen Sie das Ergebnis dem linken Operanden zu.

z - = y ist äquivalent zu

z = z -y

* =

Multiplizieren Sie den rechten Operanden mit dem linken Operanden und weisen Sie das Ergebnis dem linken Operanden zu.

z * = y ist äquivalent zu

z = z * y

/ =

Teilt den linken Operanden mit dem rechten Operanden und weist dem linken Operanden die Antwort zu.

z / = y ist äquivalent zu

z = z / y

% =

Nimmt den Modul von zwei Operanden an und ordnet die Antwort dem linken Operanden zu.

z% = y ist äquivalent zu

z = z% y

<<=

Left Shift UND Zuweisungsoperator

z << 5 is equivalent to

 z = z <<5

>> =

Rechtsverschiebungs- UND Zuweisungsoperator

z >> 5 ist äquivalent zu

 z = z >> 5

& =

Bitweiser AND-Zuweisungsoperator

z & = 5 ist äquivalent zu

z = z & 5

^ =

Exklusiver ODER-Zuweisungsoperator für Bit

z ^ = 5 ist äquivalent zu

z = z ^ 5

| =

Bitweises ODER-Zuweisungsoperator

z | = 5 ist äquivalent zu z = z | 5

Unterschied zwischen Copy Constructor und Zuweisungsoperator

Definition

Kopierkonstruktor ist ein spezieller Konstruktor zum Erstellen eines neuen Objekts als Kopie eines vorhandenen Objekts. Im Gegensatz dazu ist der Zuweisungsoperator ein Operator, mit dem einer Variablen ein neuer Wert zugewiesen wird. Diese Definitionen erklären den grundlegenden Unterschied zwischen Kopierkonstruktor und Zuweisungsoperator.

Funktionalität mit Objekten

Die Funktionalität mit Objekten ist auch ein wesentlicher Unterschied zwischen dem Kopierkonstruktor und dem Zuweisungsoperator. Der Copy-Konstruktor initialisiert das neue Objekt mit einem bereits vorhandenen Objekt, während der Zuweisungsoperator den Wert eines Objekts einem bereits vorhandenen Objekt zuweist.

Verwendungszweck

Mit dem Copy-Konstruktor können Sie eine Kopie eines vorhandenen Objekts erstellen, während der Zuweisungsoperator einer Variablen einen neuen Wert zuweist. Dies ist ein weiterer Unterschied zwischen dem Kopierkonstruktor und dem Zuweisungsoperator.

Fazit

Der Unterschied zwischen Kopierkonstruktor und Zuweisungsoperator besteht darin, dass der Kopierkonstruktor eine Art Konstruktor ist, mit dem eine Kopie eines bereits vorhandenen Objekts erstellt werden kann, ohne die Werte des ursprünglichen Objekts zu beeinflussen, während der Zuweisungsoperator ein Operator ist, der beim Zuweisen eines neuen Werts hilft eine Variable im Programm.

Referenz:

1. Thakur, Dinesh. „Konstruktor in Java-Beispiel kopieren“. Hinweise zum Computer, hier verfügbar.