Verschil tussen Constructor en Destructor

De klasse vormt de kern van object-oriented programming (OOP). Het is als een blauwdruk voor het maken van objecten die beginwaarden biedt voor lidvariabelen en lidfuncties. Het is de basisbouwsteen van OOP die de aard van een toekomstig object definieert. Het belangrijkste van een klasse is dat het een nieuw gegevenstype definieert en eenmaal gedefinieerd, kan het worden gebruikt om objecten van dat type te maken. Dus het zou voldoende zijn om te zeggen dat een klasse een sjabloon is voor een object, en een object in feite een instantie van een klasse is. Het wordt gebruikt voor het maken en beheren van nieuwe objecten en ondersteuning van overerving, wat een van de kernbegrippen is van objectgeoriënteerde programmeertalen zoals Java. Kort gezegd, een klasse organiseert informatie over een gegevenstype om elementen opnieuw te gebruiken bij het maken van meerdere exemplaren van dat gegevenstype. De gegevens of variabelen gedefinieerd binnen een klasse worden instantievariabelen genoemd.

Wat is een Constructor?

Een constructor is een speciale lidfunctie van een klasse die wordt aangeroepen wanneer een instantie van een object wordt gemaakt. Soms kan het moeilijk zijn om alle variabelen in een klasse te initialiseren telkens wanneer een exemplaar wordt gemaakt. Omdat de vereiste voor initialisatie gebruikelijk is bij objectgeoriënteerd programmeren, kunnen objecten automatisch worden geïnitialiseerd wanneer ze worden gemaakt. Dit proces van automatische initialisatie wordt uitgevoerd door het gebruik van een constructor. De reden waarom het speciaal wordt genoemd, is omdat de instantiemethode meestal dezelfde naam heeft als de klasse. Het initialiseert een object onmiddellijk na het maken en kan worden gebruikt om de waarden van de leden van een object in te stellen. Een constructor is syntactisch vergelijkbaar met een methode in objectgeoriënteerd programmeren en een methode is een procedure die is gekoppeld aan een klasse en is opgenomen in elk object van die klasse. Kortom, elke keer dat een object van een klasse wordt gemaakt, wordt een constructor aangeroepen. Het belangrijkste van constructeurs is dat ze geen retourtype hebben, zelfs niet ongeldig.

Wat is een destructor?

Een destructor is volledig een ander concept; het is een speciale methode die wordt aangeroepen wanneer het exemplaar van een klasse uit het geheugen wordt verwijderd. Een destructor wordt automatisch aangeroepen wanneer een object niet langer nodig is of op het punt staat te verdwijnen of expliciet wordt vrijgegeven. Het belangrijkste doel van een destructor is om zich te ontdoen van de middelen die het object gebruikte tijdens zijn levenscyclus. Het geeft het object een laatste kans om elk toegewezen geheugen vrij te maken, zodat er voldoende ruimte op de heap is om nieuwe objecten op te slaan om programma's efficiënt uit te voeren. Destructors worden vaak gebruikt in combinatie met constructors, behalve dat ze worden gebruikt om objecten te vernietigen die zijn gemaakt met constructors. Het idee is om objecten te de-initialiseren wanneer ze worden verwijderd om geheugen vrij te maken voor nieuwe objecten. Net als constructeurs worden destructors gedefinieerd als subroutines in de klassedefinitie en hebben ze dezelfde naam als de klassenaam, behalve dat een destructor voorafgegaan wordt door een ~ (tilde) operator. Destructors worden expliciet in C ++ genoemd, maar er zijn geen destructors in Java.

Verschil tussen Constructor en Destructor

Doel van Constructor en Destructor

Zowel constructeurs als destructors zijn speciale lidfuncties van elke klas, maar met verschillende concepten. Een constructor wordt gebruikt om het exemplaar van een klasse te initialiseren, wat betekent dat het wordt aangeroepen telkens een klasse wordt geïnstantieerd, terwijl een destructor het tegenovergestelde is van een constructor die in de omgekeerde volgorde van constructors wordt aangeroepen.

Geheugentoewijzing

Elke keer dat een nieuwe instantie van een klasse wordt gemaakt, wordt een constructor aangeroepen. Het is in feite een lidfunctie van een klasse die een object onmiddellijk bij het aanmaken initialiseert en er geheugen aan toewijst. Een destructor wordt daarentegen aangeroepen wanneer een instantie van een klasse uit het geheugen wordt verwijderd, die op zijn beurt de-initialiseert met behulp van constructors gemaakte objecten om geheugen vrij te maken voor nieuwe objecten.

Naam

Beide constructors en destructors zijn speciale lidfuncties van een klasse met dezelfde naam als de klassenaam, behalve dat een destructor wordt voorafgegaan door een ~ (tilde) -operator. Een constructor is niets anders dan een methode zonder Return Type, zelfs niet ongeldig, terwijl destructors precies het tegenovergestelde zijn van constructors.

overbelasting

Zowel constructeurs als destructors worden automatisch opgeroepen na het maken en verwijderen. In tegenstelling tot constructeurs kunnen destructors echter niet worden overbelast. Overbelasting is een objectgeoriënteerd programmeerconcept waarmee u twee of meer functies met dezelfde naam kunt definiëren, zodat u ze kunt bellen met verschillende argumentlijsten.

argumenten

Bij objectgeoriënteerd programmeren accepteren constructors vaak argumenten die ze gebruiken om vereiste lidvariabelen in te stellen, terwijl destructors geen argumenten accepteren.

Werken van Constructor en Destructor

Constructors staan ​​toe dat het object een deel van zijn waarde initialiseert voordat het wordt gebruikt, terwijl destructors toestaan ​​dat het object een deel van de code uitvoert op het moment dat het wordt vernietigd.

 Constructor Verzen Destructor: Vergelijkingstabel

Samenvatting van Constructor Vs. destructor

Zowel constructors als destructors zijn speciale lidfuncties van een klasse met dezelfde naam als de klassenaam, behalve dat destructors worden voorafgegaan door een ~ tilde-operator. Een constructor is niets anders dan een methode, behalve dat deze wordt aangeroepen wanneer een instantie van een object wordt gemaakt, terwijl een destructor precies het tegenovergestelde is van constructors die worden aangeroepen wanneer de instantie van een object uit het geheugen wordt verwijderd. Het doel van destructors is om objecten die zijn gemaakt met constructors te de-initialiseren om geheugenruimte vrij te maken voor nieuwe objecten.