Sissejuhatus konstruktorisse ja hävitajasse

Konstruktor ja hävitaja. Konstruktor on erifunktsioon, millel on sama nimi kui klassil, milles see on määratletud. Seda kutsutakse automaatselt iga kord, kui luuakse uus eksemplar. Seda peetakse eriliseks funktsiooniks, kuna seda ei pea tingimata kutsuma objekti kasutades. Hävitajat võib määratleda kui eriliiki meetodit, mille saab eksemplari kustutamisel tühistada. Destructori eesmärk on vabastada mälu, mida ta sellega seob, kuni klassi eksemplar on loodud. Destructori kontseptsioon on seotud mäluhaldusega, et ressursse saaks tõhusalt kasutada. Sellistes keeltes nagu C ++ eksisteerib Destructori mõiste ja sellele saab automaatselt pöörduda, kui eksemplar on kustutatud, samas kui Java keeles sellist mõistet Destructor ei eksisteeri. See võimaldas programmi heal viisil kirjutada, nii et seda saaks õigesti koostada ja see oleks mälukasutuse osas kerge.

Pea ja pea võrdlus konstruktori ja hävitaja vahel

Allpool on toodud 4 parimat võrdlust konstruktori ja hävitaja vahel

Peamised erinevused konstruktori ja hävitaja vahel

Ehitajate ja destruktorite vahel on mitu erinevust. Allpool on toodud mõned levinumad ja olulisemad erinevused.

  • Selle klassi eksemplari loomisel kutsutakse välja konstruktor. Seda ei pea selgesõnaliselt nimetama. Hävitaja puhul käivitatakse see, kui mõne klassi eksemplar kustutatakse. See on ka asi, mis saab automaatselt rolli kohe pärast objekti kustutamist.
  • Konstruktor viib süsteemi mälu hõivamiseks, määrates selle ressurssidele ja see on hävitaja puhul täpselt vastupidine. Hävitajas vabastatakse ressurssidele määratud mälu, nii et seda saaks kasutada mõni muu ressurss.
  • Ehitajaks tunnistamiseks pole vaja erimärki. Võib lihtsalt luua meetodi, mille nimi sarnaneb klassi nimega. Hävitaja puhul tuleb hävitaja tutvustamiseks programmis kasutada tilde-märki.
  • Konstruktorit saab kasutada kõrge ja kesktaseme programmeerimiskeeles. Hävitaja puhul ei saa seda kõrgetasemelises keeles kasutada. C ++ suudab hävitajat kasutada, kuid sama pole Java-s saadaval. Selle põhjuseks on asjaolu, et kõrgetasemelisel programmeerimiskeelel oli oma mäluhalduse mehhanism.
  • Konstruktorit võib programmis kasutada väga sageli. Seda on väga lihtne kasutada ja see vähendab programmi keerukust. Teisest küljest eelistatakse hävitajat kasutada siis, kui on vaja vähendada programmi ressursside mälukasutust.

Pea ja pea võrdlus konstruktori ja hävitaja vahel

KonstruktorHävitaja
Kutsutud eksemplari loomisel
Mistahes klassi eksemplari või objekti loomisel kutsutakse see automaatselt konstruktorisse, kes teeb kõik konstrukatori meetodi alusel avaldused täidetavaks.
Kutsutud eksemplari kustutamisel
Kui eksemplar või objekt kustutatakse, käivitatakse hävitaja automaatselt ja pärast seda täidetakse hävitaja klassi avaldused järjestikku.
Hõivab mälu
Klassi kutsumise ajal eraldab see mälu kõigile ressurssidele, mida klass kavatseb edaspidi kasutada. See viib süsteemi mälu tarbimiseni, et andmeid alaliselt või ajutiselt säilitada.
Vabastab mälu
Kui hävitajat kutsutakse, vabastab see kõik mälestused, et ressursid on hõivatud. Vabastatud mälu saab täiendavalt leida muude ressursside jaoks, mida programmis kasutatakse.
Toetatud keskmise ja kõrge taseme keeltes
Ehitajale helistatakse automaatselt, kui selle klassi eksemplar on loodud ja seda funktsiooni toetavad mõlemat tüüpi keeled: keskmise ja kõrge taseme programmeerimiskeeled.
Toetage ainult kesktaseme keeles
Hävitaja funktsioone toetatakse ainult kesktaseme keeles, näiteks C ++. Kui tegemist on kõrgtasemel keelega, näiteks Java, siis see ei võimalda selliseid funktsioone, kuna tal on oma viis mälu haldamiseks.
Deklaratsiooni ajal ei nõuta erimärki
Ehitajaks kuulutamiseks tuleb lihtsalt kirjutada meetodi nimi, mis peab olema sama, mis klassil. Ehitaja deklareerimiseks ei tohiks olla vaja erimärki.
Tilde kasutatakse deklaratsiooni esitamisel
Hävitajaks tunnistamiseks tuleb kasutada tilde. Ehitaja nimele peab järgnema tilde märk ja see peab lõppema väikeste sulgudega, nagu see juhtub igas funktsioonis.

Järeldus

  • Ehitaja pole midagi muud kui lihtsalt meetod, millel on sama nimi kui klassil. Pärast esinemisjuhtude loomist ei ole vaja aega kutsuda. Objekti saab sel juhul luua sama süntaksi abil, mida kasutatakse ükskõik millise klassi objekti loomiseks. Objekti loomise hetkeks võtab see mälus ruumi ja viib konstruktori avalduse täide.
  • Hävitaja on midagi täpselt vastupidist ehitajale. Sellele pöördutakse kohe pärast objekti kustutamist. Tegelikult kustutab objekt objekti kustutamise korral kõik sellel paiknenud ressursid, mis vabastab kõik nende poolt reserveeritud mälud, et uued ressursid saaksid seda mälu kasutada. Ehkki mõlema kontseptsiooni vahel on mõningaid erinevusi, mängivad nad mõlemad programmeerimisel üliolulist rolli ja eriti kui me räägime kesktaseme keelt kasutavast tõhusast programmeerimisest.

Soovitatavad artiklid:

See on juhend ehitaja ja hävitaja erinevusest. Siin on arutatud sissejuhatust konstruktorisse ja hävitajasse, peamisi erinevusi koos võrdlustabeliga. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. C ++ vs Java
  2. C ++ intervjuu küsimused
  3. Java kogumike intervjuuküsimused
  4. Karjäär programmeerimises

Kategooria: