Úvod do konštruktora a ničiteľa

Konštruktor a ničiteľ. Konštruktor je špeciálna funkcia, ktorá má rovnaký názov ako trieda, v ktorej bola definovaná. Automaticky sa volá vždy, keď sa vytvorí nová inštancia. Považuje sa za špeciálny druh funkcie, pretože sa nemusí výslovne nazývať pomocou objektu. Destruktor môže byť definovaný ako špeciálny druh metódy, ktorú je možné zrušiť, keď sa inštancia odstráni. Účelom Destruktora je uvoľniť pamäť, ktorú s ňou viaže, zatiaľ čo bola vytvorená inštancia triedy. Koncepcia Destructor sa týka správy pamäte, aby sa prostriedky mohli efektívne využívať. V jazykoch ako C ++ existuje pojem Destructor a mohol by sa vyvolať automaticky po odstránení inštancie, zatiaľ čo v jazyku, ako je Java, pojem Destructor neexistuje. Program umožňuje, aby bol napísaný dobre, aby mohol byť správne zostavený a aby bol ľahký z hľadiska spotreby pamäte.

Porovnanie medzi jednotlivými konštruktormi a ničiteľmi

Nižšie je zoznam najlepších 4 porovnávaní medzi konštruktorom a ničiteľom

Kľúčové rozdiely medzi konštruktorom a ničiteľom

Existuje niekoľko rozdielov medzi konštruktormi a deštruktormi. Ďalej uvádzame niektoré bežné a dôležité rozdiely.

  • Konštruktor sa vyvolá pri vytvorení inštancie tejto triedy. Nie je potrebné ho výslovne nazývať. V prípade deštruktora sa vyvolá, keď sa odstráni inštancia ktorejkoľvek triedy. Je to tiež niečo, čo príde automaticky do role hneď po vymazaní objektu.
  • Konštruktor vedie k obsadeniu pamäte systému ich lokalizáciou k zdrojom a v prípade deštruktora je to práve naopak. V deštruktore sa uvoľní pamäť, ktorá bola priradená k prostriedkom, aby ju mohla použiť iný prostriedok.
  • Na vyhlásenie staviteľa nie je potrebný osobitný charakter. Jeden môže len vytvoriť metódu, ktorej meno je podobné názvu triedy. V prípade deštruktora sa musí značka vlnovky použiť na zavedenie deštruktora do programu.
  • Konštruktor môže byť použitý v programovacom jazyku vysokej a strednej úrovne. Zatiaľ čo v prípade deštruktora ho nemožno použiť v jazyku vysokej úrovne. C ++ je schopný použiť deštruktor, ale to isté nie je dostupné v Jave. Je to z toho dôvodu, že programovací jazyk na vysokej úrovni mal svoj vlastný mechanizmus správy pamäte.
  • Konštruktora sa v programe často používa. Jeho používanie je veľmi jednoduché a znižuje zložitosť programu. Na druhej strane sa deštruktor prednostne používa, keď existuje potreba znížiť spotrebu pamäte programovými prostriedkami.

Porovnanie typu hlava-hlava medzi konštruktorom a ničiteľom

staviteľničiteľ
Vyvoláva sa pri vytváraní inštancie
Keď sa vytvorí inštancia alebo objekt akejkoľvek triedy, vedie to k automatickému volaniu konštruktora, ktorý vykoná všetky príkazy podľa metódy konstruktora, ktorá sa má vykonať.
Vyvolané počas odstraňovania inštancie
Keď sa inštancia alebo objekt odstráni, deštruktor sa vyvolá automaticky a potom sa príkazy triedy deštruktora vykonajú postupne.
Zaberá pamäť
Počas vyvolávania triedy prideľuje pamäť všetkým zdrojom, ktoré bude trieda ďalej používať. To vedie k spotrebe pamäte systému na trvalé alebo dočasné ukladanie údajov.
Uvoľňuje pamäť
Zatiaľ čo sa vyvolá deštruktor, uvoľní všetky spomienky, ktoré boli obsadené prostriedkami. Uvoľnená pamäť môže byť ďalej umiestnená k iným zdrojom, ktoré sa používajú v programe.
Podporované v stredných a vyšších jazykoch
Konštruktor sa volá automaticky vždy, keď bola vytvorená inštancia tejto triedy a táto funkcia je podporovaná oboma druhmi jazykov: strednými a vysokými úrovňami programovacích jazykov.
Podpora iba v jazyku na strednej úrovni
Funkcie deštruktora sú podporované iba v jazyku strednej úrovne, ako je C ++. Pokiaľ ide o jazyk na vysokej úrovni, ako je Java, nepovoľuje funkcie, ako je tento, pretože má svoj vlastný spôsob správy pamäte.
Počas vyhlásenia sa nevyžaduje osobitný znak
Na vyhlásenie konštruktora stačí napísať názov metódy, ktorá musí byť rovnaká ako metóda triedy. Na vyhlásenie staviteľa by sa nemal vyžadovať žiadny osobitný znak.
Tilde sa používa počas vyhlásenia
Na deklarovanie deštruktora bude potrebné použiť vlnovku. Za menom konštruktora musí nasledovať znak vlnovky a musí sa končiť malými zátvorkami, ako sa to stáva pri každej funkcii.

záver

  • Konštruktor nie je nič iné, iba metóda, ktorá má rovnaký názov ako trieda. Po vytvorení inštancií netrvá čas. Objekt sa v tomto prípade dá vytvoriť pomocou rovnakej syntaxe, ako sa používa na vytvorenie objektu akejkoľvek triedy. V čase, keď je objekt vytvorený, zaberá miesto v pamäti a prevedie vyhlásenie konštruktora.
  • Deštruktor je niečo, čo je presne v protiklade s konstruktorom. Vyvolá sa okamžite po vymazaní objektu. Keď je objekt skutočne vymazaný, vymaže všetky prostriedky, ktoré boli k nemu umiestnené, čo vedie k uvoľneniu všetkých spomienok, ktoré boli rezervované, aby nové zdroje mohli túto pamäť použiť. Aj keď existujú určité rozdiely medzi oboma koncepciami, obidve hrajú zásadnú úlohu v programovaní, a najmä keď hovoríme o efektívnom programovaní pomocou jazyka na strednej úrovni.

Odporúčané články:

Toto je príručka k rozdielu medzi konštruktorom a ničiteľom. Tu sme diskutovali úvod do Constructor and Destructor, kľúčové rozdiely spolu s porovnávacou tabuľkou. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. C ++ verzus Java
  2. Rozhovor s C ++
  3. Otázky týkajúce sa rozhovoru s kolekciami Java
  4. Kariéra v počítačovom programovaní

Kategórie: