Razlika med konstruktorjem in destruktorjem

Razred je v samem jedru objektno usmerjenega programiranja (OOP). Je kot načrt za ustvarjanje predmetov, ki zagotavlja začetne vrednosti za članske spremenljivke in funkcije članov. To je osnovni gradnik OOP, ki določa naravo prihodnjega objekta. Najpomembnejša stvar razreda je, da definira nov tip podatkov in ko ga enkrat definiramo, ga lahko uporabimo za ustvarjanje predmetov tega tipa. Torej bi bilo dovolj reči, da je razred predloga za predmet, predmet pa pravzaprav primerek razreda. Uporablja se za ustvarjanje in upravljanje novih predmetov in podporo dedovanju, kar je eden temeljnih konceptov objektno usmerjenih programskih jezikov, kot je Java. Skratka, razred organizira informacije o podatkovni vrsti, tako da lahko ponovno uporabi elemente pri izdelavi več primerkov te vrste podatkov. Podatki ali spremenljivke, definirane v razredu, se imenujejo spremenljivke primerkov.

Kaj je konstruktor?

Konstruktor je posebna funkcija razreda razreda, ki se imenuje, ko se ustvari primerek predmeta. Včasih je težko inicializirati vse spremenljivke v razredu vsakič, ko se ustvari primerek. Ker je zahteva po inicializaciji pogosta v objektno usmerjenem programiranju, omogoča, da se predmeti samodejno inicializirajo, ko so ustvarjeni. Ta postopek samodejne inicializacije se izvede z uporabo konstruktorja. Razlog, zakaj se imenuje poseben, je, ker ima metoda primerka običajno isto ime kot razred. Predmet inicializira objekt takoj po ustvarjanju in ga lahko uporabite za nastavitev vrednosti članov predmeta. Konstruktor je sintaktično podoben metodi v objektno usmerjenem programiranju, metoda pa je postopek, povezan z razredom in vključen v kateri koli objekt tega razreda. Skratka, konstruktor se imenuje vsakič, ko se ustvari predmet razreda. Najpomembnejše pri konstruktorjih je, da nimajo povratnega tipa, niti ne praznega.

Kaj je Destruktor?

Destruktor je povsem drugačen koncept; to je posebna metoda, ki se pokliče, ko se primerek razreda izbriše iz pomnilnika. Destruktor se samodejno pokliče, kadar predmet ni več potreben ali pa bo kmalu izginil ali je izrecno sproščen. Glavni namen uničevalca je, da se znebi virov, ki jih je predmet uporabljal v svojem življenjskem ciklu. Predmetu daje zadnjo priložnost, da osvobodi dodeljeni pomnilnik, tako da bo na kopici dovolj prostora za shranjevanje novih predmetov za učinkovito izvajanje programov. Destruktorji se pogosto uporabljajo skupaj s konstruktorji, le da se uporabljajo za uničenje predmetov, ki so bili ustvarjeni s konstruktorji. Ideja je, da ob izbrisu predmetov deinicializirate, da sprostite pomnilnik za nove predmete. Tako kot konstruktorji so tudi destruktorji v definiciji razreda opredeljeni kot podprogrami in imajo isto ime kot ime razreda, razen če je destruktor predpona z ~ (tilde) operater. V C ++ se uničevalci izrecno imenujejo, vendar na Javi ni destruktorjev.

Razlika med konstruktorjem in destruktorjem

Namen konstruktorja in destruktorja

Tako konstruktorji kot destruktorji so posebne funkcije članov vsakega razreda, vendar z različnimi koncepti. Za inicializacijo primerka razreda se uporablja konstruktor, kar pomeni, da se ga prikliče vsakič, ko se razred instancira, medtem ko je destruktor nasprotje konstruktorja, ki se imenuje v obratnem vrstnem redu konstruktorjev.

Dodelitev spomina

Konstruktor se imenuje vsakič, ko se ustvari nov primerek razreda. To je v osnovi članska funkcija razreda, ki objekt inicializira takoj ob ustvarjanju in mu dodeli pomnilnik. Nasprotno pa se pokliči destruktor, ko se izbriše primerek razreda iz pomnilnika, ki deinicializira predmete, ki so bili ustvarjeni s konstruktorji za sprostitev pomnilnika za nove predmete.

Ime

Tako konstruktorji kot destruktorji so posebne funkcije članov razreda z istim imenom kot ime razreda, razen če je destruktor predpoen z operaterjem ~ (tilde). Konstruktor ni nič drugega kot metoda, ki nima povratnega tipa, niti ni ničnega, medtem ko so destruktorji ravno obratno.

Preobremenitev

Konstruktorji in destruktorji se po ustvarjanju in brisanju samodejno pokličejo. Vendar pa za razliko od konstruktorjev destruktorjev ni mogoče preobremeniti. Preobremenitev je objektno usmerjen programski koncept, ki vam omogoča, da določite dve ali več funkcij z istim imenom, tako da jih lahko pokličete z različnimi seznami argumentov.

Argumenti

V objektno usmerjenem programiranju konstruktorji pogosto sprejmejo argumente, ki jih uporabljajo za nastavitev zahtevanih spremenljivk članov, medtem ko destruktorji ne sprejmejo nobenih argumentov.

Delo konstruktorja in destruktorja

Konstruktorji dovolijo objektu, da inicializira del svoje vrednosti, preden ga uporabi, medtem ko destruktorji dovolijo, da predmet izvrši del kode v času, ko se uniči..

 Destruktor verzov konstruktorjev: primerjalna tabela

Povzetek Constructor Vs. Destruktor

Tako konstruktorji kot destruktorji so posebne funkcije članov razreda z istim imenom kot ime razreda, razen pred destruktorji je operater ~ tilde. Konstruktor ni nič drugega kot metoda, razen se imenuje, ko se ustvari primerek predmeta, medtem ko je destruktor ravno obratno od konstruktorjev, ki se imenujejo, ko se primerek predmeta izbriše iz pomnilnika. Namen destruktorjev je deinicializirati predmete, ki so bili ustvarjeni s konstruktorji, da bi sprostili pomnilniški prostor za sprejem novih predmetov.