Unterschied zwischen Konstruktor und Destruktor

Unterschied zwischen Konstruktor und Destruktor

Die Klasse ist im Kern der objektorientierten Programmierung (OOP). Es ist wie eine Blaupause zum Erstellen von Objekten, die Anfangswerte für Mitgliedsvariablen und Mitgliedsfunktionen liefern. Es ist der grundlegende Baustein von OOP, der die Art eines zukünftigen Objekts definiert. Das Wichtigste an einer Klasse ist, dass sie einen neuen Datentyp definiert und nach dem Definieren kann verwendet werden, um Objekte dieses Typs zu erstellen. Es wäre also ausreichend zu sagen, dass eine Klasse eine Vorlage für ein Objekt ist, und tatsächlich ein Objekt ist eine Instanz einer Klasse. Es wird verwendet, um neue Objekte zu erstellen und zu verwalten und die Vererbung zu unterstützen. Dies ist eines der Kernkonzepte objektorientierter Programmiersprachen wie Java. Kurz gesagt, eine Klasse organisiert Informationen zu einem Datentyp, um Elemente wiederzuverwenden, wenn mehrere Instanzen dieses Datentyps erstellt werden. Die in einer Klasse definierten Daten oder Variablen werden als Instanzvariablen bezeichnet.

Was ist ein Konstruktor?

Ein Konstruktor ist eine spezielle Mitgliedsfunktion einer Klasse, die als Instanz eines Objekts erstellt wird. Es kann manchmal schwierig sein, alle Variablen in einer Klasse jedes Mal zu initialisieren, wenn eine Instanz erstellt wird. Da die Anforderung für die Initialisierung bei objektorientierter Programmierung häufig vorkommt, können Objekte beim Erstellen automatisch initialisieren, wenn sie erstellt werden. Dieser Prozess der automatischen Initialisierung erfolgt durch die Verwendung eines Konstruktors. Der Grund, warum es als Special bezeichnet wird, ist, 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 Mitglieder eines Objekts festzulegen. Ein Konstruktor ähnelt syntaktisch einer Methode in der objektorientierten Programmierung, und eine Methode ist eine Prozedur, die einer Klasse zugeordnet ist und in jedem 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ückkehrtyp haben, nicht einmal Leer.

Was ist ein Destruktor?

Ein Destruktor ist ganz ein anderes Konzept; Es ist eine spezielle Methode, die als Instanz einer Klasse bezeichnet wird, die aus dem Speicher gelöscht wird. Ein Destruktor wird automatisch aufgerufen, wenn ein Objekt nicht mehr benötigt wird oder im Begriff ist zu verschwinden oder explizit freigegeben wird. Der Hauptzweck eines Destruktors besteht darin, die Ressourcen, die das Objekt während seines Lebenszyklus verwendete, loszuwerden. Es gibt dem Objekt eine letzte Chance, jeden Speicher zu befreien, den es zugewiesen hat. Destruktoren werden häufig in Verbindung mit Konstruktoren verwendet, außer dass sie verwendet werden, um Objekte zu zerstören, die mit Konstruktoren erstellt wurden. Die Idee ist, Objekte zu initialisieren, wenn sie gelöscht werden, um Speicher für neue Objekte freizugeben. Wie Konstruktoren werden Zerstörer in der Klassendefinition als Unterprogramm definiert und haben denselben Namen wie der Klassenname, außer dass ein Destruktor mit einem vorangestellt ist ~ (Tilde) Operator. Destruktoren werden explizit in C ++ genannt, es gibt jedoch keine Zerstörer in Java.

Unterschied zwischen Konstruktor und Destruktor

Zweck des Konstruktors und Destruktors

Sowohl Konstruktoren als auch Destruktoren sind besondere Mitgliedsfunktionen jeder Klasse, aber mit unterschiedlichen Konzepten. Ein Konstruktor wird verwendet, um die Instanz einer Klasse zu initialisieren, was bedeutet, dass er jedes Mal aufgerufen wird, wenn eine Klasse instanziiert wird, während ein Destruktor das Gegenteil eines Konstruktors ist, der in der umgekehrten 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 Mitgliedsfunktion einer Klasse, die ein Objekt unmittelbar nach der Erstellung initialisiert und ihm Speicher zuteilt. Ein Destruktor dagegen wird aufgerufen, wenn eine Klasse aus dem Speicher gelöscht wird, der sich an die Initialisierung von Objekten enthält, die mit Konstruktoren erstellt wurden, um Speicher für neue Objekte freizugeben.

Name

Sowohl Konstruktoren als auch Destruktoren sind spezielle Mitgliedsfunktionen einer Klasse mit demselben Namen wie der Klassenname, außer dass ein Destruktor mit einem ~ (Tilde) Operator vorangestellt ist. Ein Konstruktor ist nichts anderes als eine Methode, die keinen Rückkehrtyp hat, nicht einmal für nichtig, während Zerstörer genau das Gegenteil von Konstruktoren sind.

Überlastung

Sowohl Konstruktoren als auch Destruktoren werden nach der Erstellung und Löschung 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, damit Sie sie mit verschiedenen Argumentationslisten aufrufen können.

Argumente

In objektorientierten Programmierungen akzeptieren Konstruktoren häufig Argumente, mit denen sie die erforderlichen Mitgliedsvariablen festlegen, während Zerstörer keine Argumente akzeptieren.

Arbeiten von Konstruktor und Zerstörer

Konstruktoren ermöglichen es dem Objekt, einen Teil seines Werts zu initialisieren, bevor es verwendet wird.

 Konstruktorverse Destruktor: Vergleichstabelle

Zusammenfassung des Konstruktors vs. Zerstörer

Sowohl Konstruktoren als auch Destruktoren sind spezielle Mitgliedsfunktionen einer Klasse mit demselben Namen wie der Klassenname, außer dass Destruktoren ein Tilde -Operator vorausgehen. Ein Konstruktor ist nichts anderes als eine Methode, außer es wird als die Instanz eines Objekts erstellt, während ein Destruktor genau das Gegenteil von Konstruktoren ist, die als Instanz eines Objekts aus dem Speicher gelöscht werden. Der Zweck von Zerstörern besteht darin, Objekte zu initialisieren, die mit Konstruktoren erstellt wurden, um Speicherplatz zu freien, um neue Objekte aufzunehmen.