Was ist der Unterschied zwischen Kopierkonstruktor und Zuweisungsoperator?

Inhaltsverzeichnis:

Anonim

Die Hauptunterschied zwischen Kopierkonstruktor und Zuweisungsoperator ist das Kopierkonstruktor ist ein Konstruktortyp, der hilft, eine Kopie eines bereits vorhandenen Objekts zu erstellen, ohne die Werte des ursprünglichen Objekts zu beeinflussen, während der Zuweisungsoperator ein Operator ist, der hilft, einer Variablen im Programm einen neuen Wert zuzuweisen.

Ein Konstruktor ist eine spezielle Methode, die hilft, ein Objekt beim Erstellen zu initialisieren. Es hat denselben 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 kein Konstruktor im Programm vorhanden ist, wird der Standardkonstruktor aufgerufen. Der Kopierkonstruktor ist ein Konstruktortyp, der beim Erstellen einer Kopie eines vorhandenen Objekts hilft. Andererseits hilft der Zuweisungsoperator, einer Variablen einen neuen Wert zuzuweisen.

Konstruktor, Kopierkonstruktor, Zuweisungsoperator, Variable

Was ist Kopierkonstruktor?

Bei der Programmierung ist es manchmal erforderlich, eine separate Kopie eines Objekts zu erstellen, ohne das Originalobjekt zu beeinträchtigen. Der Kopierkonstruktor ist in diesen Situationen nützlich. Es ermöglicht das Erstellen einer Replikation eines vorhandenen Objekts derselben Klasse. Siehe das folgende Beispiel.

Abbildung 1: Programm mit Kopierkonstruktor

Die Klasse Triangle hat zwei Instanzvariablen namens base und height. In Zeile 8 gibt es einen parametrisierten Konstruktor. Es braucht zwei Argumente. Diese Werte werden den Instanzvariablen base und height zugewiesen. In Zeile 13 gibt es einen Kopierkonstruktor. Es braucht ein Argument vom Typ Dreieck. Der Basiswert des neuen Objekts wird der Instanzvariablen base zugewiesen. Ebenso wird der Höhenwert des neuen Objekts der Instanzvariablen Höhe zugewiesen. Darüber hinaus gibt es eine Methode namens calArea, um die Fläche zu berechnen und zurückzugeben.

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

Was ist Zuweisungsoperator

Ein Zuweisungsoperator ist nützlich, um einer Variablen einen neuen Wert zuzuweisen. Der Zuweisungsoperator ist „=“. Wenn es eine Aussage wie c = a + b gibt; 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 gibt es keinen Parameterkonstruktor. In Zeile 9 gibt es jedoch einen parametrisierten Konstruktor. Er nimmt ein Argument und weist es mit dem Zuweisungsoperator der Instanzvariablen 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. Das Drucken von num1 und num2 liefert die Referenzen auf diese Objekte. Die num3 ist vom Typ Number. In Zeile 24 wird num1 mit dem Zuweisungsoperator num3 zugewiesen. Daher bezieht sich num3 auf das Objekt num1. Wenn Sie also num3 drucken, erhalten Sie die Referenz num1.

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 entspricht z = z +y

– =

Subtrahieren Sie den rechten Operanden vom linken Operanden 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 entspricht

z = z*y

/=

Dividiert den linken Operanden durch den rechten Operanden und weist die Antwort dem linken Operanden zu.

z / = y ist äquivalent zu

z = z/y

%=

Nimmt den Modulus von zwei Operanden und weist die Antwort dem linken Operanden zu.

z % = y entspricht

z = z % y

<<=

Linksverschiebung UND Zuweisungsoperator

z << 5 entspricht

z= z <<5

>>=

Rechtsverschiebung UND Zuweisungsoperator

z >>5 ist äquivalent zu

z= z>>5

&=

Bitweiser UND-Zuweisungsoperator

z&=5 ist äquivalent zu

z = z&5

^=

Bitweises Exklusiv-ODER und Zuweisungsoperator

z ^=5 entspricht

z = z^5

|=

Bitweises inklusives ODER und Zuweisungsoperator

z |= 5 entspricht z = z|5

Unterschied zwischen Kopierkonstruktor und Zuweisungsoperator

Definition

Der Kopierkonstruktor ist ein spezieller Konstruktor zum Erstellen eines neuen Objekts als Kopie eines vorhandenen Objekts. Im Gegensatz dazu ist der Zuweisungsoperator ein Operator, der verwendet wird, um einer Variablen einen neuen Wert zuzuweisen. 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 Kopierkonstruktor und Zuweisungsoperator. Der Kopierkonstruktor initialisiert das neue Objekt mit einem bereits existierenden Objekt, während der Zuweisungsoperator den Wert eines Objekts einem anderen bereits existierenden Objekt zuweist.

Verwendungszweck

Der Kopierkonstruktor hilft, eine Kopie eines vorhandenen Objekts zu erstellen, während der Zuweisungsoperator hilft, einer Variablen einen neuen Wert zuzuweisen. Dies ist ein weiterer Unterschied zwischen Kopierkonstruktor und Zuweisungsoperator.

Abschluss

Der Unterschied zwischen Kopierkonstruktor und Zuweisungsoperator besteht darin, dass der Kopierkonstruktor ein Konstruktortyp ist, der hilft, eine Kopie eines bereits vorhandenen Objekts zu erstellen, ohne die Werte des ursprünglichen Objekts zu beeinflussen, während der Zuweisungsoperator ein Operator ist, der hilft, einen neuen Wert zuzuweisen eine Variable im Programm.

Referenz:

1. Thakur, Dinesh. „Kopierkonstruktor in Java-Beispiel.“ Computernotizen, hier verfügbar.

Was ist der Unterschied zwischen Kopierkonstruktor und Zuweisungsoperator?