Differenza tra costruttore e distruttore

La classe è al centro della programmazione orientata agli oggetti (OOP). È come un progetto per la creazione di oggetti che fornisce valori iniziali per variabili membro e funzioni membro. È il componente base di OOP che definisce la natura di un oggetto futuro. La cosa più importante di una classe è che definisce un nuovo tipo di dati e, una volta definito, può essere usato per creare oggetti di quel tipo. Quindi sarebbe sufficiente dire che una classe è un modello per un oggetto, e un oggetto infatti è un'istanza di una classe. È usato per creare e gestire nuovi oggetti e supportare l'ereditarietà, che è uno dei concetti chiave dei linguaggi di programmazione orientati agli oggetti come Java. In breve, una classe organizza le informazioni su un tipo di dati in modo da riutilizzare gli elementi quando si creano più istanze di quel tipo di dati. I dati o le variabili definiti all'interno di una classe sono chiamati variabili di istanza.

Cos'è un costruttore?

Un costruttore è una funzione membro speciale di una classe che viene chiamata quando viene creata l'istanza di un oggetto. A volte può essere difficile inizializzare tutte le variabili in una classe ogni volta che viene creata un'istanza. Poiché il requisito per l'inizializzazione è comune nella programmazione orientata agli oggetti, consente agli oggetti di inizializzarsi automaticamente quando vengono creati. Questo processo di inizializzazione automatica viene eseguito tramite l'uso di un costruttore. Il motivo per cui è chiamato speciale è perché il metodo di istanza di solito ha lo stesso nome della classe. Inizializza un oggetto immediatamente dopo la creazione e può essere utilizzato per impostare i valori dei membri di un oggetto. Un costruttore è sintatticamente simile a un metodo nella programmazione orientata agli oggetti e un metodo è una procedura associata a una classe e inclusa in qualsiasi oggetto di quella classe. In breve, un costruttore viene chiamato ogni volta che viene creato un oggetto di una classe. La cosa più importante dei costruttori è che non hanno alcun tipo di reso, nemmeno vuoto.

Cos'è un Destructor?

Un distruttore è interamente un concetto diverso; è un metodo speciale che viene chiamato quando l'istanza di una classe viene cancellata dalla memoria. Un distruttore viene chiamato automaticamente quando un oggetto non è più necessario o sta per sparire o viene rilasciato esplicitamente. Lo scopo principale di un distruttore è sbarazzarsi delle risorse che l'oggetto stava usando durante il suo ciclo di vita. Fornisce all'oggetto un'ultima possibilità di liberare tutta la memoria allocata in modo che ci sia spazio sufficiente sull'heap per memorizzare nuovi oggetti per eseguire i programmi in modo efficiente. I distruttori sono spesso usati in congiunzione con i costruttori, tranne per il fatto che sono usati per distruggere oggetti creati usando costruttori. L'idea è di inizializzare gli oggetti quando vengono cancellati per liberare memoria per i nuovi oggetti. Come i costruttori, i distruttori sono definiti come subroutine nella definizione della classe e hanno lo stesso nome del nome della classe, tranne che un distruttore è preceduto da un ~ (tilde) operatore. I distruttori sono chiamati esplicitamente in C ++, tuttavia non ci sono distruttori in Java.

Differenza tra Costruttore e Distruttore

Scopo del costruttore e del distruttore

Sia i costruttori che i distruttori sono funzioni membro speciali di ogni classe, ma con concetti diversi. Un costruttore è usato per inizializzare l'istanza di una classe, il che significa che viene invocato ogni volta che una classe viene istanziata, mentre un distruttore è l'opposto di un costruttore che viene chiamato nell'ordine inverso dei costruttori.

Allocazione della memoria

Un costruttore viene chiamato ogni volta che viene creata una nuova istanza di una classe. È fondamentalmente una funzione membro di una classe che inizializza un oggetto immediatamente dopo la creazione e alloca la memoria ad esso. Un distruttore, d'altra parte, viene chiamato quando l'istanza di una classe viene cancellata dalla memoria che a sua volta deinizializza gli oggetti che sono stati creati usando i costruttori per liberare memoria per i nuovi oggetti.

Nome

Sia i costruttori che i distruttori sono funzioni membro speciali di una classe con lo stesso nome del nome della classe, tranne che un distruttore è preceduto da un operatore ~ ​​(tilde). Un costruttore non è altro che un metodo che non ha Tipo di ritorno, nemmeno vuoto, mentre i distruttori sono esattamente l'opposto dei costruttori.

Sovraccarico

Entrambi i costruttori e i distruttori sono chiamati automaticamente dopo la creazione e la cancellazione. Tuttavia, a differenza dei costruttori, i distruttori non possono essere sovraccaricati. Il sovraccarico è un concetto di programmazione orientato agli oggetti che consente di definire due o più funzioni con lo stesso nome in modo da poterle chiamare con elenchi di argomenti diversi.

argomenti

Nella programmazione orientata agli oggetti, i costruttori accettano spesso argomenti che usano per impostare variabili membro richieste, mentre i distruttori non accettano alcun argomento.

Funzionamento di Costruttore e Distruttore

I costruttori consentono all'oggetto di inizializzare parte del suo valore prima che venga utilizzato, mentre i distruttori consentono all'oggetto di eseguire parte del codice nel momento in cui viene distrutto.

 Costruttore Verses Destructor: Comparison Chart

Riassunto di Costruttore vs. Distruttore

Sia i costruttori che i distruttori sono funzioni membro speciali di una classe con lo stesso nome del nome della classe, eccetto che i distruttori sono preceduti da un operatore di ~ tilde. Un costruttore non è altro che un metodo, tranne che viene chiamato quando viene creata l'istanza di un oggetto, mentre un distruttore è esattamente l'opposto dei costruttori chiamati quando l'istanza di un oggetto viene cancellata dalla memoria. Lo scopo dei distruttori è desinizializzare gli oggetti che sono stati creati usando i costruttori per liberare spazio di memoria per accogliere nuovi oggetti.