Hva er forskjellen mellom Copy Constructor og Assignment Operator

De hovedforskjell mellom kopikonstruktør og oppdragsoperatør er det kopikonstruktør er en type konstruktør som bidrar til å lage en kopi av et allerede eksisterende objekt uten å påvirke verdiene til det opprinnelige objektet mens oppdragsoperatøren er en operatør som bidrar til å tildele en ny verdi til en variabel i programmet.

En konstruktør er en spesiell metode som bidrar til å initialisere et objekt når du oppretter det. Den har samme navn som klassenavnet og har ingen returtype. En programmerer kan skrive en konstruktør for å gi innledende verdier til instansvariablene i klassen. Hvis det ikke er noen konstruktør i programmet, vil standardkonstruktøren bli kalt. Kopier konstruktør er en type konstruktør som bidrar til å lage en kopi av en eksisterende gjenstand. På den annen side hjelper oppdragsoperatøren til å tildele en ny verdi til en variabel.

Nøkkelområder dekket

1. Hva er Copy Constructor
     - Definisjon, funksjonalitet
2. Hva er Oppdragsoperatør
     - Definisjon, funksjonalitet
3. Hva er forskjellen mellom Copy Constructor og Assignment Operator
     - Sammenligning av nøkkelforskjeller

Nøkkelord

Konstruktør, Kopier Konstruent, Oppdrag Operator, Variabel

Hva er Copy Constructor

Ved programmering er det noen ganger nødvendig å lage en egen kopi av et objekt uten å påvirke det opprinnelige objektet. Kopier konstruktør er nyttig i disse situasjonene. Det tillater å lage en replikering av et eksisterende objekt av samme klasse. Se eksemplet nedenfor.

Figur 1: Program med kopikontaktor

Klassen Triangle har to instansvariabler kalt base og høyde. I linje 8 er det en parameterisert konstruktør. Det tar to argumenter. Disse verdiene er tilordnet forekomstvariablene og høyden. I linje 13 er det en kopikonstruktør. Det tar et argument av typen Triangle. Nytt objekts basisverdi er tilordnet instansvariabasen. Tilsvarende er det nye objektets høydeverdi tilordnet forekomstvariabelhøyden. Videre er det en metode kalt calArea for å beregne og returnere området.

I hovedmetoden er t1 og t2 trekantobjekter. Objektet t1 blir bestått når du lager t2-objektet. Kopikonstruktøren kalles for å opprette t2-objekt. Derfor er basen og høyden til t2-objektet den samme som basis og høyde på t1-objektet. Til slutt har begge gjenstandene det samme området.    

Hva er Oppdragsoperatør

En oppdragsoperatør er nyttig for å tilordne en ny verdi til en variabel. Oppdragsoperatøren er "=". Når det er en setning som c = a + b; summen av 'a' og 'b' tilordnes variabelen 'c'.

Figur 2: Program med oppdragsoperatør

Klassenummeret har en instansvariabel kalt num. Det er ingen parameterkonstruktor i linje 7. Det er imidlertid en parameterisert konstruktør i linje 9. Det tar et argument og tilordner det til instansvariabelen ved hjelp av oppdragsoperatøren. I linje 12 er det en metode som kalles display for å vise nummeret. I hovedmetoden er num1 og num2 to objekter av typenummer. Utskrift num1 og num2 gir referansene til disse objektene. Num3 er av typenummer. I linje 24 er num1 tilordnet num3 ved hjelp av oppdragsoperatøren. Derfor refererer num3 til num1 objekt. Så, utskrift num3 gir num1 referansen.  

Oppdragsoperatøren og dens variasjoner er som følger.

Operatør

funksjonalitet

Eksempel

=

Tilordner høyre operand til venstre operand

 z = x + y

+=

Legg til høyre operand til venstre operand og tilordne resultatet til venstre operand

z + = y er ekvivalent med z = z + y

- =

Trekk høyre operand fra venstre operand og tilordne resultatet til venstre operand.

z - = y er ekvivalent med

z = z-y

* =

Multipliser høyre operand med venstre operand og tilordne resultatet til venstre operand.

z * = y er ekvivalent med

z = z * y

/ =

Deler venstre operand med høyre operand og tilordner svaret til venstre operand.

z / = y er ekvivalent med

z = z / y

% =

Tar modulus av to operander og tildeler svaret til venstre operand.

z% = y tilsvarer

z = z% y

<<=

Venstre skift og oppdragsoperatør

z << 5 is equivalent to

 z = z <<5

>> =

Høyre skift og oppdragsoperatør

z >> 5 tilsvarer

 z = z >> 5

& =

Bitwise og assignment operator

z & = 5 tilsvarer

z = z & 5

^ =

Bitwise eksklusiv OR og oppdragsoperatør

z ^ = 5 er ekvivalent med

z = z ^ 5

| =

Bitvis inkluderende OR og oppdragsoperatør

z | = 5 er ekvivalent med z = z | 5

Forskjellen mellom Copy Constructor og Assignment Operator

Definisjon

Kopier konstruktør er en spesiell konstruktør for å lage et nytt objekt som en kopi av en eksisterende gjenstand. I kontrast er oppdragsoperatør en operatør som brukes til å tilordne en ny verdi til en variabel. Disse definisjonene forklarer den grunnleggende forskjellen mellom kopikonstruktør og oppdragsoperatør.

Funksjonalitet med objekter

Funksjonalitet med objekter er også en stor forskjell mellom kopikonstruktør og oppdragsoperatør. Kopier konstruktør initialiserer det nye objektet med et allerede eksisterende objekt mens oppdragsoperatør tilordner verdien av en objekt til et annet objekt som allerede eksisterer.

bruk

Kopier konstruktør bidrar til å lage en kopi av en eksisterende gjenstand mens oppdragsoperatøren hjelper til å tilordne en ny verdi til en variabel. Dette er en annen forskjell mellom kopikonstruktør og oppdragsoperatør.

Konklusjon

Forskjellen mellom kopikonstruktør og oppdragsoperatør er at kopikonstruktøren er en type konstruktør som bidrar til å lage en kopi av et allerede eksisterende objekt uten å påvirke verdiene til det opprinnelige objektet mens oppdragsoperatøren er en operatør som bidrar til å tildele en ny verdi til en variabel i programmet.

Henvisning:

1. Thakur, Dinesh. "Kopier Konstruent i Java Eksempel." Computer Notes, tilgjengelig her.