Forskjellen mellom konstruksjon og destructor

Klassen er selve kjernen i objektorientert programmering (OOP). Det er som et blåkopi for å lage objekter som gir innledende verdier for medlemsvariabler og medlemsfunksjoner. Det er den grunnleggende byggestenen til OOP som definerer naturen til et fremtidig objekt. Det viktigste med en klasse er at den definerer en ny datatype og en gang er definert, kan den brukes til å lage objekter av den typen. Så det ville være tilstrekkelig å si at en klasse er en mal for et objekt, og et objekt er faktisk en forekomst av en klasse. Den brukes til å skape og styre nye objekter og støtte arv, noe som er et av hovedkonseptene til objektorienterte programmeringsspråk som Java. Kort sagt organiserer en klasse informasjon om en datatype for å gjenbruke elementer når flere forekomster av datatypen utføres. Dataene eller variablene definert i en klasse kalles instansvariabler.

Hva er en Constructor?

En konstruktør er en spesiell medlemsfunksjon av en klasse som kalles når forekomst av et objekt er opprettet. Det kan være vanskelig til tider å initialisere alle variablene i en klasse hver gang en forekomst er opprettet. Ettersom kravet til initialisering er vanlig i objektorientert programmering, tillater objektene å initialisere automatisk når de er opprettet. Denne prosessen med automatisk initialisering gjøres ved bruk av en konstruktør. Grunnen til at den kalles spesiell er fordi forekomstmetoden vanligvis har samme navn som klassen. Den initialiserer et objekt umiddelbart etter opprettelsen og kan brukes til å angi verdiene til medlemmene av en gjenstand. En konstruktør er syntaktisk lik en metode i objektorientert programmering, og en metode er en prosedyre assosiert med en klasse og inngår i ethvert objekt av denne klassen. Kort sagt kalles en konstruktør hver gang et objekt av en klasse opprettes. Det viktigste med konstruktører er at de ikke har noen returtype, ikke engang tom.

Hva er en Destructor?

En destructor er helt et annet konsept; Det er en spesiell metode som kalles når forekomst av en klasse slettes fra minnet. En destructor kalles automatisk når en gjenstand ikke lenger er nødvendig eller er i ferd med å forsvinne eller utgis eksplisitt. Hovedformålet med en destructor er å kvitte seg med ressursene objektet brukte under sin livssyklus. Det gir objektet en siste sjanse til å frigjøre noe minne det tildeles slik at det vil være nok plass på bunke for å lagre nye objekter for å kjøre programmer effektivt. Destruktorer brukes ofte sammen med konstruktører, bortsett fra at de er vant til å ødelegge objekter som ble opprettet ved hjelp av konstruktører. Tanken er å de-initialisere objekter når de slettes for å frigjøre minne for nye objekter. Som konstruktører defineres destruktorer som underrutiner i klassdefinisjonen, og de har samme navn som klassenavnet, bortsett fra at en destructor er prefiks med en ~ (tilde) operatør. Destruktorer kalles eksplisitt i C ++, men det er ingen destruktorer i Java.

Forskjellen mellom Constructor og Destructor

Formål med Constructor og Destructor

Både konstruktører og destruktorer er spesielle medlemsfunksjoner i hver klasse, men med forskjellige begreper. En konstruktør brukes til å initialisere forekomsten av en klasse, noe som betyr at den påberopes hver gang en klasse er instantiated, mens en destructor er motsatt av en konstruktør som kalles i omvendt rekkefølge av konstruktører.

Minneallokering

En konstruktør kalles hver gang en ny forekomst av en klasse er opprettet. Det er i utgangspunktet en medlemsfunksjon av en klasse som initialiserer et objekt umiddelbart etter opprettelsen og tildeler minne til det. En destructor blir derimot kalt når forekomst av en klasse blir slettet fra minnet som i sin tur de-initialiserer objekter som ble opprettet ved hjelp av konstruktører for å frigjøre minne for nye gjenstander.

Navn

Både konstruktører og destruktorer er spesielle medlemsfunksjoner av en klasse med samme navn som klassenavnet, bortsett fra at en destructor er prefiks med en ~ (tilde) operatør. En konstruktør er bare en metode som ikke har noen returtype, ikke engang tom, mens destruktorer er nøyaktig motsatt av konstruktører.

overbelastning

Både konstruktører og destruktorer kalles automatisk etter opprettelse og sletting. Men i motsetning til konstruktører kan destruktorer ikke overbelastes. Overbelastning er et objektorientert programmeringskonsept som lar deg definere to eller flere funksjoner med samme navn slik at du kan ringe dem med forskjellige argumentlister.

argumenter

I objektorientert programmering aksepterer konstruktører ofte argumenter som de bruker til å stille inn nødvendige medlemsvariabler, mens destruktorer ikke godtar argumenter.

Arbeider av Constructor og Destructor

Konstruktører tillater objektet å initialisere noe av verdien før det blir brukt, mens destruktorer tillater objektet å utføre en del av koden på det tidspunktet den blir ødelagt.

 Constructor Verses Destructor: Sammenligningstabel

Sammendrag av Constructor Vs. Destructor

Både konstruktører og destruktorer er spesielle medlemsfunksjoner av en klasse med samme navn som klassenavnet, med unntak av destruktorer på forhånd. En konstruktør er ingenting annet enn en metode, bortsett fra at den kalles når forekomst av et objekt er opprettet, mens en destruktor er nøyaktig motsatt av konstruktører som kalles når forekomst av et objekt slettes fra minnet. Formålet med destruktorer er å de-initialisere objekter som ble opprettet ved hjelp av konstruktører for å frigjøre minneplass for å imøtekomme nye objekter.