Uvod v konstruktor in destruktor

Konstruktor in destruktor. Konstruktor je posebna funkcija, ki ima isto ime kot razred, v katerem je bila določena. Kliče se samodejno vsakič, ko je ustvarjen nov primerek. Šteje se za posebno vrsto funkcije, saj ni treba izrecno poklicati predmeta. Destruktor je mogoče opredeliti kot posebno vrsto metode, ki jo je mogoče preklicati, ko je izbrisan primerek. Namen Destruktorja je osvoboditi pomnilnik, ki ga veže z njim, medtem ko je bil ustvarjen primerek razreda. Koncept Destructorja skrbi za upravljanje pomnilnika, da bi se sredstva lahko učinkovito uporabljala. V jezikih, kot je C ++, obstaja koncept Destructor in ga je mogoče samodejno priklicati, ko je primerek izbrisan, medtem ko v jeziku, kot je Java, koncept Destructor ne obstaja. Program je omogočil, da je napisan na dober način, da ga je mogoče pravilno sestaviti in je lahko glede na porabo pomnilnika.

Primerjava med konstruktorji in destruktorjem

Spodaj je zgornjih 4 primerjav med konstruktorjem in destruktorjem

Ključne razlike med konstruktorjem in destruktorjem

Obstaja več razlik med konstruktorji in destruktorji. Spodaj je nekaj skupnih in pomembnih razlik.

  • Konstruktor se prikliče, ko ustvari primerek tega razreda. Ni ga treba izrecno poklicati. V primeru uničevalnika prikliče, ko se izbriše primerek katerega koli razreda. To je tudi nekaj, kar pride v vlogo samodejno takoj po izbrisu predmeta.
  • Konstruktor pripelje do tega, da zasede pomnilnik sistema, tako da jih locira na vire in v primeru destruktorja je ravno obratno. V destruktorju se sprosti pomnilnik, ki je bil dodeljen virom, da bi ga lahko uporabljal drug vir.
  • Za razglasitev konstruktorja ni potreben poseben značaj. Enostavno lahko ustvarite metodo, katere ime je podobno imenu razreda. V primeru destruktorja je treba za uvedbo destruktorja v program uporabiti znak tilde.
  • Konstruktor se lahko uporablja v programskem jeziku visokega in srednjega nivoja. V primeru destruktorja ga ni mogoče uporabljati v jeziku visoke ravni. C ++ lahko uporablja destruktor, vendar na Javi ni na voljo. Razlog je, da je imel programski jezik na visoki ravni svoj mehanizem za upravljanje pomnilnika.
  • Konstruktorja lahko v programu pogosto uporabljamo. Uporaba je zelo preprosta in zmanjšuje zahtevnost programa. Po drugi strani se raje uporablja destruktor, kadar je treba s programskimi sredstvi zmanjšati porabo pomnilnika.

Primerjava med glavo in konstruktorjem

KonstruktorDestruktor
Povabljen med ustvarjanjem primerkov
Ko je ustvarjen primerek ali objekt katerega koli razreda, to privede do samodejnega klica konstruktorja, ki bo naredil vse izjave v okviru metode konstruktorja.
Med izbrisom primerka povabljen
Ko se primerek ali objekt izbriše, se destruktor samodejno in pozneje prikliče izjave razreda destruktorja zaporedno.
Zasede spomin
Medtem ko se prikliče razred, dodeli pomnilnik vsem virom, ki jih bo razred še naprej uporabljal. To vodi do porabe spomina sistema za trajno ali začasno shranjevanje podatkov.
Sprosti spomin
Medtem ko se prikliče destruktor, sprosti vse spomine, da so bili viri zasedeni. Sproščeni pomnilnik se lahko nadalje nahaja v drugih virih, ki se uporabljajo v programu.
Podprto v jezikih srednjih in visokih ravni
Konstruktor se samodejno pokliče vsakič, ko je bil ustvarjen primerek tega razreda in to funkcijo podpirata oba jezika: programski jezik srednjega in visokega nivoja.
Podpora samo v jeziku srednje ravni
Funkcije destruktorja so podprte le v jeziku srednje ravni, kot je C ++. Ko gre za jezik na visoki ravni, kot je Java, ne omogoča takšnih funkcij, saj ima svoj način upravljanja s pomnilnikom.
Med deklaracijo ni potreben poseben znak
Za razglasitev konstruktorja je treba samo napisati ime metode, ki mora biti enako ime razreda. Za prijavo konstruktorja ne sme biti posebnega znaka.
Tilde se uporablja med deklaracijo
Za razglasitev destruktorja bo potrebna uporaba tilde. Imenu konstruktorja mora slediti znak tilde in se mora končati z majhnimi oklepaji, kot se dogaja pri vsaki funkciji.

Zaključek

  • Konstruktor ni nič drugačen, ampak samo metoda, ki ima isto ime kot razred. Ko se ustvarijo primerki, ne potrebujete časa, da se prikličete. Objekt lahko v tem primeru ustvarite z isto sintakso, kot jo uporabljamo za ustvarjanje predmeta katerega koli razreda. Do trenutka, ko je objekt ustvarjen, zasede prostor v spominu in prinese izjavo konstruktorja v izvedbo.
  • Destruktor je nekaj, kar je ravno nasprotno od konstruktorja. Prikliče se takoj po izbrisu predmeta. Pravzaprav, ko predmet izbriše, izbriše vse vire, ki so mu bili naloženi, kar vodi v sprostitev vseh spominov, ki so jih rezervirali, tako da bi novi viri lahko uporabljali ta pomnilnik. Čeprav med obema konceptoma obstaja nekaj razlik, imata oba ključno vlogo pri programiranju, še posebej pa, če govorimo o učinkovitem programiranju z uporabo jezika srednje ravni.

Priporočeni članki:

To je vodnik za razliko med konstruktorjem in destruktorjem. Tu smo razpravljali o uvodu v Constructor in Destructor, o ključnih razlikah s primerjalno tabelo. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -

  1. C ++ in Java
  2. C ++ vprašanja za intervju
  3. Vprašanja o intervjujih o zbirkah Java
  4. Poklic v računalniškem programiranju