Unterschied zwischen Konstruktor und Destruktor

Die Klasse steht im Zentrum der objektorientierten Programmierung (OOP). Es ist wie ein Plan zum Erstellen von Objekten, der Anfangswerte für Elementvariablen und Elementfunktionen bereitstellt. Es ist der grundlegende Baustein von OOP, der die Natur eines zukünftigen Objekts definiert. Das Wichtigste an einer Klasse ist, dass sie einen neuen Datentyp definiert. Sobald sie definiert ist, können sie zum Erstellen von Objekten dieses Typs verwendet werden. Es genügt also zu sagen, dass eine Klasse eine Vorlage für ein Objekt ist und ein Objekt tatsächlich eine Instanz einer Klasse ist. Es wird zum Erstellen und Verwalten neuer Objekte und zur Unterstützung der Vererbung verwendet. Dies ist eines der Kernkonzepte objektorientierter Programmiersprachen wie Java. Kurz gesagt, eine Klasse organisiert Informationen über einen Datentyp, um Elemente wiederzuverwenden, wenn mehrere Instanzen dieses Datentyps erstellt werden. Die innerhalb einer Klasse definierten Daten oder Variablen werden Instanzvariablen genannt.

Was ist ein Konstruktor??

Ein Konstruktor ist eine spezielle Memberfunktion einer Klasse, die aufgerufen wird, wenn eine Instanz eines Objekts erstellt wird. Es kann manchmal schwierig sein, bei jeder Instanzerstellung alle Variablen in einer Klasse zu initialisieren. Da die Anforderung an die Initialisierung in der objektorientierten Programmierung üblich ist, können Objekte beim Erstellen automatisch initialisiert werden. Dieser Vorgang der automatischen Initialisierung erfolgt durch Verwendung eines Konstruktors. Der Grund, warum es als special bezeichnet wird, liegt darin, dass die Instanzmethode normalerweise denselben Namen wie die Klasse hat. Es initialisiert ein Objekt sofort nach der Erstellung und kann verwendet werden, um die Werte der Elemente eines Objekts festzulegen. Ein Konstruktor ist einer Methode in der objektorientierten Programmierung syntaktisch ähnlich, und eine Methode ist eine Prozedur, die einer Klasse zugeordnet ist und in einem Objekt dieser Klasse enthalten ist. Kurz gesagt, ein Konstruktor wird jedes Mal aufgerufen, wenn ein Objekt einer Klasse erstellt wird. Das Wichtigste an Konstruktoren ist, dass sie keinen Rückgabetyp haben und nicht einmal ungültig sind.

Was ist ein Destruktor??

Ein Destruktor ist ein völlig anderes Konzept. Es ist eine spezielle Methode, die aufgerufen wird, wenn die Instanz einer Klasse aus dem Speicher gelöscht wird. Ein Destruktor wird automatisch aufgerufen, wenn ein Objekt nicht mehr benötigt wird oder verschwinden soll oder explizit freigegeben wird. Der Hauptzweck eines Destruktors besteht darin, die Ressourcen zu entfernen, die das Objekt während seines Lebenszyklus verwendet hat. Es gibt dem Objekt eine letzte Chance, den zugewiesenen Speicher freizugeben, sodass auf dem Heapspeicher genügend Speicherplatz zum Speichern neuer Objekte vorhanden ist, um Programme effizient auszuführen. Destruktoren werden häufig in Verbindung mit Konstruktoren verwendet, mit der Ausnahme, dass sie zum Zerstören von Objekten verwendet werden, die mit Konstruktoren erstellt wurden. Die Idee ist, Objekte zu löschen, wenn sie gelöscht werden, um Speicherplatz für neue Objekte freizugeben. Destruktoren sind wie Konstruktoren in der Klassendefinition als Subroutinen definiert und haben denselben Namen wie der Klassenname, mit der Ausnahme, dass einem Destruktor ein a vorangestellt ist ~ (Tilde) Operator. Destruktoren werden in C ++ explizit aufgerufen, es gibt jedoch keine Destruktoren in Java.

Unterschied zwischen Konstruktor und Destruktor

Zweck des Konstrukteurs und Destruktors

Konstruktoren und Destruktoren sind spezielle Elementfunktionen jeder Klasse, jedoch mit unterschiedlichen Konzepten. Ein Konstruktor wird zum Initialisieren der Instanz einer Klasse verwendet, das heißt, er wird jedes Mal aufgerufen, wenn eine Klasse instanziiert wird, während ein Destruktor das Gegenteil eines Konstruktors ist, der in umgekehrter Reihenfolge der Konstruktoren aufgerufen wird.

Speicherzuweisung

Ein Konstruktor wird jedes Mal aufgerufen, wenn eine neue Instanz einer Klasse erstellt wird. Es ist im Grunde eine Member-Funktion einer Klasse, die ein Objekt sofort nach der Erstellung initialisiert und ihm Speicherplatz zuweist. Ein Destruktor wird dagegen aufgerufen, wenn die Instanz einer Klasse aus dem Speicher gelöscht wird, wodurch Objekte, die mithilfe von Konstruktoren erstellt wurden, desitialisiert werden, um Speicher für neue Objekte freizugeben.

Name

Konstruktoren und Destruktoren sind spezielle Elementfunktionen einer Klasse mit demselben Namen wie der Klassenname, mit der Ausnahme, dass einem Destruktor ein ~ (Tilde) -Operator vorangestellt ist. Ein Konstruktor ist nichts anderes als eine Methode, die keinen Rückgabetyp hat, nicht einmal void, während Destruktoren genau das Gegenteil von Konstruktoren sind.

Überlastung

Konstruktoren und Destruktoren werden nach dem Erstellen und Löschen automatisch aufgerufen. Im Gegensatz zu Konstruktoren können Destruktoren jedoch nicht überladen werden. Überladen ist ein objektorientiertes Programmierkonzept, mit dem Sie zwei oder mehr Funktionen mit demselben Namen definieren können, um sie mit verschiedenen Argumentlisten aufzurufen.

Argumente

In der objektorientierten Programmierung akzeptieren Konstruktoren häufig Argumente, mit denen sie die erforderlichen Member-Variablen festlegen, während Destruktoren keine Argumente akzeptieren.

Arbeit des Konstrukteurs und Destruktors

Konstruktoren ermöglichen es dem Objekt, einen Teil seines Wertes zu initialisieren, bevor es verwendet wird, während Destruktoren es dem Objekt ermöglichen, einen Teil des Codes zu dem Zeitpunkt auszuführen, zu dem es zerstört wird.

 Constructor Verses Destructor: Vergleichstabelle

Zusammenfassung des Konstruktors Vs. Zerstörer

Konstruktoren und Destruktoren sind spezielle Elementfunktionen einer Klasse, die denselben Namen wie der Klassenname haben, mit der Ausnahme, dass Destruktoren ein ~ Tilde-Operator vorangestellt wird. Ein Konstruktor ist nichts anderes als eine Methode, es sei denn, er wird aufgerufen, wenn eine Instanz eines Objekts erstellt wird, während ein Destruktor genau das Gegenteil von Konstruktoren ist, die aufgerufen werden, wenn die Instanz eines Objekts aus dem Speicher gelöscht wird. Destruktoren dienen dazu, Objekte, die mithilfe von Konstruktoren erstellt wurden, zu de-initialisieren, um Speicherplatz für neue Objekte freizugeben.