Atšķirība starp konstruktoru un iznīcinātāju

Klase ir objektorientētās programmēšanas (OOP) centrā. Tas ir kā projekts objektu izveidošanai, kas nodrošina sākotnējās vērtības mainīgajiem lielumiem un dalībnieku funkcijām. Tas ir OOP pamatakmens, kas nosaka nākotnes objekta raksturu. Vissvarīgākā klasei ir tā, ka tā definē jaunu datu tipu un pēc definēšanas to var izmantot šāda veida objektu izveidošanai. Tāpēc būtu pietiekami pateikt, ka klase ir objekta veidne, un objekts faktiski ir klases piemērs. To izmanto, lai izveidotu un pārvaldītu jaunus objektus un atbalstītu mantojumu, kas ir viens no objektorientēto programmēšanas valodu, piemēram, Java, pamatkoncepcijām. Īsāk sakot, klase organizē informāciju par datu tipu, lai atkārtoti izmantotu elementus, veicot vairākus šāda veida datu gadījumus. Klasē definētos datus vai mainīgos sauc par instanču mainīgajiem.

Kas ir konstruktors?

Konstruktors ir klases īpašā locekļa funkcija, kas tiek izsaukta, kad tiek izveidots objekta eksemplārs. Reizēm var būt grūti inicializēt visus klases mainīgos, katru reizi izveidojot instanci. Tā kā inicializācijas prasība ir raksturīga objektorientētā programmēšanā, tā ļauj objektiem automātiski inicializēt, kad tie tiek izveidoti. Šis automātiskās inicializācijas process tiek veikts, izmantojot konstruktoru. Iemesls, kāpēc to sauc par īpašu, ir tāds, ka instanču metodei parasti ir tāds pats nosaukums kā klasei. Tas inicializē objektu tūlīt pēc izveidošanas, un to var izmantot, lai iestatītu objekta dalībnieku vērtības. Konstruktors ir sintaktiski līdzīgs metodei objektorientētā programmēšanā, un metode ir procedūra, kas saistīta ar klasi un iekļauta jebkurā šīs klases objektā. Īsāk sakot, konstruktors tiek saukts katru reizi, kad tiek izveidots klases objekts. Vissvarīgākais par konstruktoriem ir tas, ka viņiem nav atgriešanās tipa, pat nav spēkā.

Kas ir iznīcinātājs?

Iznīcinātājs ir pilnīgi atšķirīgs jēdziens; tā ir īpaša metode, ko sauc par klases gadījuma izdzēšanu no atmiņas. Iznīcinātājs tiek automātiski izsaukts, kad objekts vairs nav vajadzīgs vai tas drīz pazūd vai tiek nepārprotami atbrīvots. Iznīcinātāja galvenais mērķis ir atbrīvoties no resursiem, ko objekts izmantoja tā dzīves cikla laikā. Tas dod objektam pēdējo iespēju atbrīvot visu tam piešķirto atmiņu, lai kaudzē būtu pietiekami daudz vietas, lai jaunus objektus varētu uzglabāt, lai programmas darbotos efektīvi. Iznīcinātājus bieži izmanto kopā ar konstruktoriem, izņemot tos, kuru mērķis ir iznīcināt objektus, kas tika izveidoti, izmantojot konstruktorus. Ideja ir atinstalēt objektus, kad tie tiek izdzēsti, lai atbrīvotu atmiņu jauniem objektiem. Tāpat kā konstruktori, arī iznīcinātāji klases definīcijā tiek definēti kā apakšprogrammas, un tiem ir tāds pats nosaukums kā klases nosaukumam, izņemot, ka iznīcinātājiem ir prefikss ar ~ (tilde) operators. Iznīcinātāji tiek skaidri izsaukti C ++, tomēr Java nav iznīcinātāju.

Atšķirība starp konstruktoru un iznīcinātāju

Konstruktora un iznīcinātāja mērķis

Gan konstruktori, gan destruktori ir katras klases īpašās locekļu funkcijas, taču ar atšķirīgām koncepcijām. Klases eksemplāra inicializēšanai tiek izmantots konstruktors, kas nozīmē, ka tas tiek izsaukts katru reizi, kad klase tiek aktualizēta, turpretī destruktors ir pretstats konstruktoram, kas tiek saukti konstruktoru apgrieztā secībā..

Atmiņas piešķiršana

Par konstruktoru sauc katru reizi, kad tiek izveidots jauns klases piemērs. Tā pamatā ir klases dalībnieka funkcija, kas objektu inicializē tūlīt pēc izveidošanas un tam piešķir atmiņu. Iznīcinātājs, no otras puses, tiek izsaukts, kad klases atmiņā tiek izdzēsts klases eksemplārs, kurš savukārt deinicializē objektus, kas tika izveidoti, izmantojot konstruktorus, lai atbrīvotu atmiņu jauniem objektiem..

Vārds

Gan konstruktori, gan destruktori ir īpašas klases locekļu funkcijas ar tādu pašu nosaukumu kā klases nosaukumam, izņemot to, ka iznīcinātājs ir apzīmēts ar ~ (tilde) operatoru. Konstruktors ir nekas cits kā metode, kurai nav atgriešanās tipa, pat nav spēkā, turpretī destruktori ir tieši pretēji konstruktoriem.

Pārslodze

Pēc izveidošanas un dzēšanas automātiski tiek saukti gan konstruktori, gan iznīcinātāji. Tomēr atšķirībā no konstruktoriem destruktorus nevar pārslogot. Pārslodze ir uz objektu orientētas programmēšanas koncepcija, kas ļauj definēt divas vai vairākas funkcijas ar vienādu nosaukumu, lai tās varētu izsaukt ar dažādiem argumentu sarakstiem..

Argumenti

Objektorientētā programmēšanā konstruktori bieži pieņem argumentus, kurus viņi izmanto nepieciešamo dalībnieku mainīgo iestatīšanai, turpretī iznīcinātāji nepieņem argumentus.

Konstruktora un iznīcinātāja darbs

Konstruktori ļauj objektam inicializēt daļu tā vērtības pirms tā izmantošanas, turpretī iznīcinātāji ļauj objektam izpildīt kādu koda daļu tajā laikā, kad tas tiek iznīcināts..

 Konstruktora verses iznīcinātājs: salīdzināšanas tabula

Kopsavilkums par konstruktoru Vs. Iznīcinātājs

Gan konstruktori, gan destruktori ir īpašas klases locekļu funkcijas ar tādu pašu nosaukumu kā klases nosaukumam, izņemot to, ka destruktoriem priekšā ir ~ tilde operators. Konstruktors ir nekas cits kā metode, izņemot to, ka to sauc, kad tiek izveidots objekta eksemplārs, turpretī destruktors ir tieši pretējs konstruktoriem, kurus sauc, kad objekta eksemplārs tiek izdzēsts no atmiņas. Iznīcinātāju mērķis ir atinstalēt objektus, kas tika izveidoti, izmantojot konstruktorus, lai atbrīvotu vietu atmiņā jaunu objektu izvietošanai.