Vad är skillnaden mellan Copy Constructor och Assignment Operator

De huvudskillnad mellan kopikonstruktör och uppdragsoperatör är det kopiera konstruktorn är en typ av konstruktör som hjälper till att skapa en kopia av ett redan befintligt objekt utan att påverka värdena på det ursprungliga objektet medan uppdragsoperatören är en operatör som hjälper till att tilldela ett nytt värde till en variabel i programmet.

En konstruktör är en speciell metod som hjälper till att initiera ett objekt när det skapas. Den har samma namn som klassnamnet och har ingen returtyp. En programmerare kan skriva en konstruktör för att ge initialvärden till instansvariablerna i klassen. Om det inte finns någon konstruktör i programmet kommer standardkonstruktorn att kallas. Kopiera konstruktorn är en typ av konstruktör som hjälper till att skapa en kopia av ett befintligt objekt. Å andra sidan hjälper tilldelningsoperatören att tilldela ett nytt värde till en variabel.

Viktiga områden som omfattas

1. Vad är Copy Constructor
     - Definition, Funktionalitet
2. Vad är uppdragsoperatör
     - Definition, Funktionalitet
3. Vad är skillnaden mellan Copy Constructor och Assignment Operator
     - Jämförelse av viktiga skillnader

Nyckelbegrepp

Constructor, Copy Constructor, Uppdragsoperatör, Variabel

Vad är Copy Constructor

I programmering är det ibland nödvändigt att skapa en separat kopia av ett objekt utan att påverka det ursprungliga objektet. Kopiera konstruktorn är användbar i dessa situationer. Det gör det möjligt att skapa en replikering av ett befintligt objekt av samma klass. Se nedan exempel.

Figur 1: Program med kopiekonstruktor

Klass Triangle har två instansvariabler kallad bas och höjd. I rad 8 finns en parametrerad konstruktör. Det tar två argument. Dessa värden är tilldelade instansvariablerna och höjden. I rad 13 finns en kopikonstruktör. Det tar ett argument av typen Triangle. Nytt objekts basvärde är tilldelat förekomstvariabasen. På samma sätt tilldelas det nya objektets höjdvärde till instansvariabelhöjden. Dessutom finns en metod som kallas calArea för att beräkna och returnera området.

I huvudmetoden är t1 och t2 trekantiga objekt. Objektet t1 passerar när du skapar t2-objektet. Kopikonstruktören kallas för att skapa t2-objekt. Därför är basen och höjden på t2-objektet samma som basen och höjden på t1-objektet. Slutligen har båda föremålen samma område.    

Vad är uppdragsoperatör

En uppdragsoperatör är användbar för att tilldela ett nytt värde till en variabel. Uppdragsoperatören är "=". När det finns ett uttalande som c = a + b; summan av 'a' och 'b' tilldelas variabeln 'c'.

Figur 2: Program med uppdragsoperatör

Klassnumret har en instansvariabel som heter num. Det finns ingen parameterkonstruktor i rad 7. Det finns emellertid en parametrerad konstruktör i rad 9. Det tar ett argument och tilldelar det till instansvariabeln med hjälp av uppdragsoperatören. I rad 12 finns en metod som kallas display för att visa numret. I huvudmetoden är num1 och num2 två objekt av typen Nummer. Utskrift num1 och num2 ger hänvisningarna till dessa objekt. Num3 är typtyp. I rad 24 är num1 tilldelat num3 med hjälp av uppdragsoperatören. Därför refererar num3 till num1-objektet. Så, utskrift num3 ger num1 referensen.  

Uppdragsoperatören och dess variationer är som följer.

Operatör

Funktionalitet

Exempel

=

Tilldelar rätt operand till vänster operand

 z = x + y

+=

Lägg till höger operand till vänster operand och tilldela resultatet till vänster operand

z + = y är ekvivalent med z = z + y

- =

Subtrahera rätt operand från vänster operand och tilldela resultatet till vänster operand.

z - = y motsvarar

z = z-y

* =

Multiplicera rätt operand med vänster operand och tilldela resultatet till vänster operand.

z * = y motsvarar

z = z * y

/ =

Delar den vänstra operand med höger operand och tilldelar svaret till vänster operand.

z / = y motsvarar

z = z / y

% =

Tar modulen av två operander och tilldelar svaret till vänster operand.

z% = y motsvarar

z = z% y

<<=

Vänsterskift OCH uppdragsoperatör

z << 5 is equivalent to

 z = z <<5

>> =

Rätt skift- och uppdragsoperatör

z >> 5 motsvarar

 z = z >> 5

& =

Bitwise och assignment operator

z & = 5 motsvarar

z = z & 5

^ =

Bitvis exklusiv OR och uppdragsoperatör

z ^ = 5 är ekvivalent med

z = z ^ 5

| =

Bitvis inkluderande OR och uppdragsoperatör

z | = 5 motsvarar z = z | 5

Skillnad mellan kopieringskonstruktion och uppdragsoperatör

Definition

Kopiera konstruktorn är en speciell konstruktör för att skapa ett nytt objekt som en kopia av ett befintligt objekt. Däremot är uppdragsoperatören en operatör som används för att tilldela ett nytt värde till en variabel. Dessa definitioner förklarar den grundläggande skillnaden mellan kopikonstruktör och uppdragsoperatör.

Funktionalitet med objekt

Funktionalitet med objekt är också en stor skillnad mellan kopikonstruktör och uppdragsoperatör. Kopiera konstruktorn initierar det nya objektet med ett redan befintligt objekt medan uppdragsoperatören tilldelar värdet av ett objekt till ett annat objekt som redan existerar.

Användande

Kopiera konstruktorn hjälper till att skapa en kopia av ett befintligt objekt medan uppdragsoperatören hjälper till att tilldela ett nytt värde till en variabel. Detta är en annan skillnad mellan kopikonstruktör och uppdragsoperatör.

Slutsats

Skillnaden mellan kopiekonstruktör och uppdragsoperatör är att kopiekonstruktorn är en typ av konstruktör som hjälper till att skapa en kopia av ett redan befintligt objekt utan att påverka värdet för det ursprungliga objektet medan uppdragsoperatören är en operatör som hjälper till att tilldela ett nytt värde till en variabel i programmet.

Referens:

1. Thakur, Dinesh. "Kopiera konstruktor i Java Exempel." Datoranteckningar, Tillgängliga här.