Rozdiel medzi konštruktorom a ničiteľom

Trieda je v samom jadre objektovo orientovaného programovania (OOP). Je to ako plán na vytváranie objektov, ktorý poskytuje počiatočné hodnoty pre členské premenné a členské funkcie. Je to základný stavebný blok OOP, ktorý definuje povahu budúceho objektu. Najdôležitejšia vec na triede je, že definuje nový dátový typ a akonáhle je definovaná, môže byť použitá na vytvorenie objektov tohto typu. Bolo by postačujúce povedať, že trieda je šablónou pre objekt a objekt je v skutočnosti inštanciou triedy. Používa sa na vytváranie a správu nových objektov a podporu dedičstva, ktoré je jedným zo základných konceptov objektovo orientovaných programovacích jazykov, ako je Java. Stručne povedané, trieda organizuje informácie o dátovom type, aby znovu použila prvky pri vytváraní viacerých inštancií tohto dátového typu. Dáta alebo premenné definované v triede sa nazývajú premenné inštancie.

Čo je to konštruktor?

Konštruktor je špeciálna členská funkcia triedy, ktorá sa volá pri vytvorení inštancie objektu. Niekedy môže byť ťažké inicializovať všetky premenné v triede pri každom vytvorení inštancie. Pretože požiadavka na inicializáciu je bežná v objektovo orientovanom programovaní, umožňuje objektom inicializovať sa automaticky, keď sú vytvorené. Tento proces automatickej inicializácie sa uskutočňuje pomocou konštruktora. Dôvod, prečo sa nazýva špeciálny, je ten, že metóda inštancie má zvyčajne rovnaký názov ako trieda. Inicializuje objekt ihneď po vytvorení a môže sa použiť na nastavenie hodnôt členov objektu. Konštruktor je syntakticky podobný metóde v objektovo orientovanom programovaní a metóda je procedúra spojená s triedou a zahrnutá v ľubovoľnom objekte tejto triedy. Stručne povedané, konštruktor sa nazýva zakaždým, keď sa vytvorí objekt triedy. Najdôležitejšia vec, ktorá sa týka konštruktorov, je, že nemajú žiadny typ vrátenia, dokonca ani neplatný.

Čo je ničiteľ?

Ničiteľ je úplne iný pojem; je to špeciálna metóda, ktorá sa volá po vymazaní inštancie triedy z pamäte. Deštruktor sa volá automaticky, keď už objekt nepotrebuje alebo sa chystá zmiznúť alebo je explicitne uvoľnený. Hlavným účelom deštruktora je zbaviť sa zdrojov, ktoré objekt používal počas svojho životného cyklu. Dáva objektu poslednú šancu uvoľniť všetku pridelenú pamäť tak, aby na halde bolo dosť miesta na ukladanie nových objektov na efektívne spúšťanie programov. Destruktory sa často používajú v spojení s konštruktormi, okrem toho, že sa používajú na ničenie objektov, ktoré boli vytvorené pomocou konštruktorov. Cieľom je deinicializovať objekty, keď sa odstránia, aby sa uvoľnila pamäť pre nové objekty. Rovnako ako konštruktory, deštruktory sa definujú ako podprogramy v definícii triedy a majú rovnaký názov ako názov triedy, s výnimkou toho, že deštruktor má predponu ~ (vlnovka) operátor. Destruktory sa v C ++ nazývajú výslovne, v Java však neexistujú žiadne deštruktory.

Rozdiel medzi konštruktorom a ničiteľom

Účel Konštruktora a Destruktora

Konštruktory aj deštruktory sú špeciálne členské funkcie každej triedy, ale s odlišnými koncepciami. Konštruktor sa používa na inicializáciu inštancie triedy, čo znamená, že sa vyvoláva pri každej inštancii triedy, zatiaľ čo deštruktor je opakom konštruktora, ktorý sa volá v opačnom poradí konštruktorov..

Pridelenie pamäte

Konštruktor sa nazýva zakaždým, keď sa vytvorí nová inštancia triedy. Je to v podstate členská funkcia triedy, ktorá inicializuje objekt ihneď po vytvorení a pridelí mu pamäť. Deštruktor sa naopak nazýva, keď sa z triedy odstráni inštancia triedy, ktorá následne deinicializuje objekty, ktoré boli vytvorené pomocou konštruktorov, aby uvoľnili pamäť pre nové objekty..

názov

Konštruktory aj deštruktory sú špeciálne členské funkcie triedy s rovnakým názvom ako názov triedy, s výnimkou toho, že deštruktor má predponu operátora ~ (vlnovka). Konštruktor nie je nič iné ako metóda, ktorá nemá návratový typ, dokonca nie je neplatná, zatiaľ čo deštruktory sú presne naopak ako konštruktory.

preťaženie

Konštruktory aj deštruktory sa volajú automaticky po vytvorení a odstránení. Na rozdiel od konštruktorov však deštruktory nemôžu byť preťažené. Preťaženie je objektovo-orientovaný programovací koncept, ktorý vám umožňuje definovať dve alebo viac funkcií s rovnakým názvom, takže ich môžete volať s rôznymi zoznamami argumentov..

argumenty

V objektovo orientovanom programovaní konštruktéri často akceptujú argumenty, ktoré používajú na nastavenie požadovaných členských premenných, zatiaľ čo deštruktory neakceptujú žiadne argumenty.

Práca konštruktora a ničiteľa

Konštruktory umožňujú objektu inicializovať časť jeho hodnoty predtým, ako sa použije, zatiaľ čo deštruktory umožňujú objektu spustiť určitú časť kódu v čase jeho zničenia..

 Destruktor Constructor Verses: Tabuľka porovnania

Zhrnutie Constructor Vs. ničiteľ

Konštruktory aj deštruktory sú špeciálne členské funkcie triedy s rovnakým názvom ako názov triedy, s výnimkou destruktorov, pred ktorými je operátor ~ vlnovky. Konštruktor nie je nič iné ako metóda okrem toho, že sa volá, keď sa vytvorí inštancia objektu, zatiaľ čo deštruktor je presne opakom konštruktorov, ktoré sa volajú pri vymazaní inštancie objektu z pamäte. Účelom deštruktorov je deinicializácia objektov, ktoré boli vytvorené pomocou konštruktorov, aby sa uvoľnil priestor v pamäti na umiestnenie nových objektov..