Forskellen mellem konstruktør og destruktør

Klassen er selve kernen i objektorienteret programmering (OOP). Det er som en plan for at oprette objekter, der giver startværdier for medlemsvariabler og medlemsfunktioner. Det er OOP's grundlæggende byggesten, der definerer arten af ​​et fremtidig objekt. Den vigtigste ting ved en klasse er, at den definerer en ny datatype, og når den er defineret, kan den bruges til at oprette objekter af den type. Så det ville være tilstrækkeligt at sige, at en klasse er en skabelon for et objekt, og et objekt faktisk er et eksempel på en klasse. Det bruges til at oprette og administrere nye objekter og understøtte arv, som er et af kernekoncepterne i objektorienterede programmeringssprog som Java. Kort sagt organiserer en klasse information om en datatype for at genbruge elementer, når der foretages flere forekomster af den datatype. Data eller variabler defineret i en klasse kaldes forekomstvariabler.

Hvad er en konstruktør?

En konstruktør er en speciel medlemsfunktion i en klasse, der kaldes, når der oprettes forekomst af et objekt. Det kan til tider være vanskeligt at initialisere alle variabler i en klasse, hver gang en instans oprettes. Da kravet til initialisering er almindeligt i objektorienteret programmering, tillader det objekter at initialisere automatisk, når de oprettes. Denne proces med automatisk initialisering udføres ved hjælp af en konstruktør. Årsagen til, at det kaldes special, er fordi eksemplet-metoden normalt har det samme navn som klassen. Det initialiserer et objekt umiddelbart efter oprettelsen og kan bruges til at indstille værdierne for medlemmerne af et objekt. En konstruktør ligner syntaktisk en metode i objektorienteret programmering, og en metode er en procedure, der er knyttet til en klasse og inkluderet i ethvert objekt i den klasse. Kort sagt kaldes en konstruktør hver gang der oprettes et objekt i en klasse. Det vigtigste ved konstruktører er, at de ikke har nogen returtype, ikke engang er ugyldige.

Hvad er en Destructor?

En destruktor er helt et andet koncept; det er en speciel metode, der kaldes, når forekomst af en klasse slettes fra hukommelsen. En destruktor kaldes automatisk, når et objekt ikke længere er nødvendigt eller er ved at forsvinde eller frigives eksplicit. Hovedformålet med en destruktor er at slippe af med de ressourcer objektet brugte i løbet af sin livscyklus. Det giver objektet en sidste chance for at frigøre enhver hukommelse, den har tildelt, så der er nok plads på bunken til at gemme nye objekter til at køre programmer effektivt. Destruktorer bruges ofte i forbindelse med konstruktører, undtagen de bruges til at ødelægge genstande, der blev oprettet ved hjælp af konstruktører. Tanken er at de-initialisere objekter, når de slettes for at frigøre hukommelse til nye objekter. Ligesom konstruktører defineres destruktorer som subroutiner i klassedefinitionen, og de har det samme navn som klassens navn, bortset fra at en destruktor er præfixeret med en ~ (tilde) operatør. Destruktorer kaldes eksplicit i C ++, men der er ingen destruktører i Java.

Forskel mellem konstruktør og destruktør

Formål med konstruktør og destruktør

Både konstruktører og destruktører er specielle medlemsfunktioner i hver klasse, men med forskellige koncepter. En konstruktør bruges til at initialisere forekomsten af ​​en klasse, hvilket betyder, at den påberåbes, hver gang en klasse bliver instantieret, mens en destruktor er det modsatte af en konstruktør, der kaldes i omvendt rækkefølge af konstruktører.

Hukommelsesfordeling

En konstruktør kaldes hver gang der oprettes en ny instans af en klasse. Det er dybest set en medlemsfunktion i en klasse, der initialiserer et objekt umiddelbart efter oprettelsen og tildeler hukommelse til det. En destruktor kaldes derimod, når forekomst af en klasse slettes fra hukommelsen, som igen initialiserer objekter, der blev oprettet ved hjælp af konstruktører til at frigøre hukommelse til nye objekter.

Navn

Både konstruktører og destruktører er specielle medlemsfunktioner i en klasse med samme navn som klassens navn, bortset fra at en destruktor er præfixeret med en ~ (tilde) operator. En konstruktør er intet andet end en metode, der ikke har nogen returtype, ikke engang ugyldig, mens destruktører er nøjagtigt det modsatte af konstruktører.

overbelastning

Både konstruktører og destruktorer kaldes automatisk efter oprettelse og sletning. I modsætning til konstruktører kan destruktorer ikke overbelastes. Overbelastning er et objektorienteret programmeringskoncept, der giver dig mulighed for at definere to eller flere funktioner med samme navn, så du kan kalde dem med forskellige argumentlister.

argumenter

I objektorienteret programmering accepterer konstruktører ofte argumenter, de bruger til at indstille påkrævede medlemsvariabler, mens destruktorer ikke accepterer nogen argumenter.

Arbejde med konstruktør og destruktør

Konstruktører tillader, at objektet initialiserer noget af dets værdi, før det bruges, mens destruktører tillader objektet at udføre en del af koden på det tidspunkt, hvor den ødelægges.

 Konstruktørvers Destructor: Sammenligningstabel

Oversigt over Constructor Vs. Destructor

Både konstruktører og destruktører er specielle medlemsfunktioner i en klasse med samme navn som klassens navn, med undtagelse af at destruktorer er forudgående af en ~ tilde-operatør. En konstruktør er intet andet end en metode, bortset fra at den kaldes, når der oprettes forekomst af et objekt, mens en destruktor er nøjagtigt det modsatte af konstruktører, der kaldes, når forekomst af et objekt slettes fra hukommelsen. Formålet med destruktører er at de-initialisere objekter, der blev oprettet ved hjælp af konstruktører for at frigøre hukommelsesplads til at rumme nye objekter.