Diferența dintre constructor și distructor

Clasa este la baza programării orientate pe obiecte (OOP). Este ca un plan pentru crearea de obiecte care furnizează valori inițiale pentru variabilele membre și funcțiile membrilor. Este blocul de bază al OOP care definește natura unui obiect viitor. Cel mai important lucru despre o clasă este acela că definește un nou tip de date și, odată definit, poate fi folosit pentru a crea obiecte de acest tip. Așadar, ar fi suficient să spunem că o clasă este un șablon pentru un obiect, iar un obiect este de fapt o instanță a unei clase. Acesta este folosit pentru a crea și gestiona obiecte noi și moștenire de sprijin, care este unul din conceptele de bază ale limbajelor de programare orientate pe obiecte, cum ar fi Java. Pe scurt, o clasă organizează informații despre un tip de date, astfel încât să reutilizeze elementele atunci când fac mai multe instanțe ale acelui tip de date. Datele sau variabilele definite într-o clasă se numesc variabile de instanță.

Ce este un constructor??

Un constructor este o funcție membră specială a unei clase care se numește atunci când este creată o instanță a unui obiect. Poate fi uneori dificil să inițializați toate variabilele dintr-o clasă de fiecare dată când este creată o instanță. Deoarece cerința de inițializare este obișnuită în programarea orientată obiect, permite obiectelor să se inițializeze automat atunci când sunt create. Acest proces de inițializare automată se face prin utilizarea unui constructor. Motivul pentru care se numește special este deoarece metoda instanței are de obicei același nume ca și clasa. Inițializează un obiect imediat după creație și poate fi folosit pentru a seta valorile membrilor unui obiect. Un constructor este similar cu o metodă de programare orientată obiect și o metodă este o procedură asociată cu o clasă și inclusă în orice obiect al acelei clase. Pe scurt, un constructor este chemat de fiecare dată când este creat un obiect al unei clase. Cel mai important lucru despre constructori este că nu au nici un tip de returnare, nici măcar nul.

Ce este un distructor?

Un destructor este un concept complet diferit; este o metodă specială care se numește atunci când o instanță a unei clase este ștearsă din memorie. Un destructor se numește automat atunci când un obiect nu mai este necesar sau este pe cale să dispară sau este eliberat în mod explicit. Scopul principal al unui distrugator este de a scapa de resursele pe care obiectul le-a folosit in timpul ciclului de viata. Oferă obiectului o ultimă șansă de a elibera orice memorie alocată acesteia, astfel încât să existe spațiu suficient pentru a stoca obiecte noi pentru a rula programele în mod eficient. Destructorii sunt adesea utilizați împreună cu constructorii, cu excepția faptului că sunt folosiți pentru a distruge obiectele create folosind constructorii. Ideea este să dezinstalați obiectele când sunt șterse pentru a elibera memoria pentru obiecte noi. Ca constructori, destructorii sunt definiți ca subrutine în definiția clasei și au același nume ca și numele de clasă, cu excepția cazului în care un destructor este prefixat cu ~ (tilde) operator. Destructorii sunt numiți în mod explicit în C ++, însă nu există niciun distrugător în Java.

Diferența dintre constructor și distructor

Scopul constructorului și al distrugătorului

Atât constructorii, cât și distrugătorii sunt funcții speciale ale fiecărei clase, dar cu concepte diferite. Un constructor este folosit pentru a inițializa instanța unei clase, adică este invocată de fiecare dată când o clasă este instanțiată, în timp ce un destructor este opusul unui constructor, care este chemat în ordinea inversă a constructorilor.

Alocare de memorie

Un constructor este chemat de fiecare dată când este creată o nouă instanță a unei clase. Este în principiu o funcție membră a unei clase care inițializează un obiect imediat după creație și îi alocă memorie. Un destructor, pe de altă parte, se numește atunci când o instanță a unei clase este ștearsă din memorie care, la rândul ei, deinalizează obiectele create folosind constructorii pentru a elibera memoria pentru obiecte noi.

Nume

Atât constructorii cât și distrugătorii sunt funcții speciale ale unei clase cu același nume ca și numele clasei, cu excepția faptului că un destructor este prefixat cu un operator ~ (tilde). Un constructor nu este altceva decât o metodă care nu are nici un tip de returnare, nici măcar nul, în timp ce distrugătorii sunt exact opusul constructorilor.

supraîncărcarea

Atât constructorii cât și distrugătorii sunt numiți automat după crearea și ștergerea. Cu toate acestea, spre deosebire de constructori, distrugatorii nu pot fi supraîncărcați. Supraîncărcarea este un concept de programare orientat pe obiect, care vă permite să definiți două sau mai multe funcții cu același nume, astfel încât să le puteți apela cu liste de argumente diferite.

Argumente

În programarea orientată pe obiecte, constructorii acceptă adesea argumente pe care le folosesc pentru a stabili variabilele de membru necesare, în timp ce destructorii nu acceptă argumente.

Lucrarea constructorului și a distrugătorului

Constructorii permit obiectului să inițializeze o parte din valoarea acestuia înainte de a fi utilizat, în timp ce distrugătorii permit obiectului să execute o parte din cod în momentul distrugerii.

 Constructor Versuri Destructor: Diagrama de comparare

Rezumatul constructorului Vs. distrugător

Atât constructorii, cât și distrugatorii sunt funcții speciale ale unei clase cu același nume ca și numele clasei, cu excepția faptului că distrugătorii sunt precedați de un operator. Un constructor nu este altceva decât o metodă, cu excepția faptului că se numește atunci când instanța unui obiect este creată, în timp ce un destructor este exact opusul constructorilor care sunt numiți atunci când o instanță a unui obiect este șters din memorie. Scopul distrugătorilor este de a iniția obiecte care au fost create folosind constructorii pentru a elibera spațiul de memorie pentru a găzdui obiecte noi.