Skirtumas tarp konstruktoriaus ir naikintojo

Klasė yra objektyvaus programavimo (OOP) esmė. Tai yra tarsi objekto kūrimo projektas, kuriame pateikiamos pradinės narių kintamųjų ir narių funkcijų vertės. Tai yra pagrindinis OOP elementas, apibrėžiantis būsimo objekto pobūdį. Svarbiausias klasės dalykas yra tai, kad ji apibrėžia naują duomenų tipą ir, kai tik ji yra apibrėžta, ją galima naudoti to tipo objektams kurti. Taigi pakaktų pasakyti, kad klasė yra objekto šablonas, o objektas iš tikrųjų yra klasės egzempliorius. Jis naudojamas kuriant ir valdant naujus objektus bei palaikant paveldėjimą, kuris yra viena iš pagrindinių objektų orientuoto programavimo kalbų, tokių kaip Java, sąvokų. Trumpai tariant, klasė organizuoja informaciją apie duomenų tipą, kad būtų galima pakartotinai naudoti elementus, kai daromi keli to tipo duomenų egzemplioriai. Duomenys arba kintamieji, apibrėžti klasėje, vadinami egzempliorių kintamaisiais.

Kas yra konstruktorius?

Konstruktorius yra ypatinga klasės nario funkcija, kuri vadinama sukuriant objekto egzempliorių. Kartais gali būti sunku inicijuoti visus klasės kintamuosius kiekvieną kartą, kai sukuriamas egzempliorius. Kadangi inicializacijos reikalavimas yra įprastas į objektus orientuoto programavimo metu, tai leidžia objektams automatiškai inicijuoti juos kuriant. Šis automatinio inicijavimo procesas atliekamas naudojant konstruktorių. Priežastis, kodėl ji vadinama ypatinga, yra tuo, kad egzempliorių metodas paprastai turi tą patį pavadinimą kaip klasė. Jis inicijuoja objektą iškart sukūrus ir gali būti naudojamas objekto narių vertėms nustatyti. Konstruktorius sintaksiniu požiūriu yra panašus į objektinio programavimo metodą, o metodas yra procedūra, susieta su klase ir įtraukta į bet kurį tos klasės objektą. Trumpai tariant, konstruktoriumi vadinamas kiekvieną kartą, kai sukuriamas klasės objektas. Svarbiausias dalykas konstruktoriams yra tas, kad jie neturi grąžinimo tipo, net nėra tušti.

Kas yra naikintojas?

Naikintojas yra visiškai kita sąvoka; tai yra specialus metodas, kuris vadinamas, kai klasės egzempliorius ištrinamas iš atminties. Naikintojas iškviečiamas automatiškai, kai objekto nebereikia arba jis beveik nebelieka arba yra aiškiai paleistas. Pagrindinis naikintojo tikslas yra atsikratyti išteklių, kuriuos objektas naudojo per savo gyvavimo ciklą. Tai suteikia objektui paskutinę galimybę atlaisvinti bet kokią jam skirtą atmintį, kad krūvoje būtų pakankamai vietos saugoti naujus objektus, kad programos būtų veiksmingos. Naikintojai dažnai naudojami kartu su konstruktoriais, išskyrus tuos, kurie naudojami daiktams, kurie buvo sukurti naudojant konstruktorius, sunaikinti. Idėja yra panaikinti objektus, kai jie bus ištrinti, kad būtų atlaisvinta naujų objektų atmintis. Kaip ir konstruktoriai, destruktoriai klasės apibrėžime yra apibrėžiami kaip paprogramės ir jie turi tą patį pavadinimą kaip klasės pavadinimas, išskyrus tai, kad griovėjas turi priešdėlį ~ (tilde) operatorius. Naikintojai vadinami aiškiai „C ++“, tačiau „Java“ griovėjų nėra.

Skirtumas tarp konstruktoriaus ir naikintojo

Konstruktoriaus ir naikintojo paskirtis

Tiek konstruktoriai, tiek destruktoriai yra kiekvienos klasės specialiosios nario funkcijos, tačiau skirtingos koncepcijos. Klasės egzemplioriui inicijuoti naudojamas konstruktorius, tai reiškia, kad jis iškviečiamas kiekvieną kartą, kai klasė pasireiškia, tuo tarpu konstruktorius yra priešingas konstruktoriui, kuris vadinamas konstruktorių atvirkštine tvarka..

Atminties paskirstymas

Konstruktoriumi vadinamas kiekvieną kartą, kai sukuriamas naujas klasės egzempliorius. Iš esmės tai yra klasės nario funkcija, kuri objektą inicijuoja iškart jį sukūrus ir skiria jam atmintį. Išnaikintojas, kita vertus, iškviečiamas, kai klasės pavyzdys ištrinamas iš atminties, o tai savo ruožtu deinicializuoja objektus, kurie buvo sukurti naudojant konstruktorius, kad atlaisvintų atmintį naujiems objektams..

vardas

Tiek konstruktoriai, tiek destruktoriai yra ypatingos klasės narių, turinčių tą patį pavadinimą, klasės funkcijos, išskyrus tai, kad griovėjas turi priešdėlį ~ (tilde). Konstruktorius yra ne kas kita, o metodas, kuris neturi grįžtamojo tipo, net nėra negaliojantis, tuo tarpu destruktoriai yra visiškai priešingi konstruktoriams.

Perkrovos

Sukūrus ir ištrynus, konstruktoriai ir destruktoriai vadinami automatiškai. Tačiau skirtingai nuo konstruktorių, destruktorių negalima perkrauti. Perkrovimas yra į objektą orientuota programavimo koncepcija, leidžianti apibrėžti dvi ar daugiau funkcijų tuo pačiu pavadinimu, kad galėtumėte jas paskambinti skirtingais argumentų sąrašais..

Argumentai

Objektinio programavimo metu konstruktoriai dažnai priima argumentus, kuriuos jie naudoja norimiems narių kintamiesiems nustatyti, tuo tarpu destruktoriai nepriima jokių argumentų..

Konstruktoriaus ir naikintojo darbas

Konstruktoriai leidžia objektui inicijuoti tam tikrą jo vertę prieš jį naudojant, tuo tarpu destruktoriai leidžia objektui vykdyti tam tikrą kodo dalį tuo metu, kai jis sunaikinamas..

 Konstruktoriaus versijų naikintojas: palyginimo lentelė

Konstruktoriaus Vs santrauka Naikintojas

Tiek konstruktoriai, tiek destruktoriai yra specialios klasės narių, turinčių tą patį pavadinimą, klasės funkcijos, išskyrus tuos atvejus, kai prieš destruktorius eina ~ tilde operatorius. Konstruktorius yra ne kas kitas, o metodas, išskyrus tai, kad jis vadinamas, kai sukuriamas objekto egzempliorius, tuo tarpu destruktorius yra visiškai priešingas konstruktoriams, kurie vadinami, kai objekto egzempliorius ištrinamas iš atminties. Naikintojų tikslas yra panaikinti objektų, kurie buvo sukurti naudojant konstruktorius, inicializavimą, siekiant atlaisvinti atminties vietą naujiems objektams talpinti..