Pagrindinis skirtumas – konstruktorius ir naikintojas
Dauguma programavimo kalbų palaiko objektinį programavimą (OOP). Tai paradigma, kuri padeda modeliuoti programinę įrangą ar programą naudojant objektus. OOP pagerina produktyvumą ir priežiūrą. OOP viskas laikoma objektu. Objektai sukuriami arba pavaizduojami naudojant klases. Konstruktorius ir naikintojas yra įprasti objektinio programavimo terminai. Šiame straipsnyje aptariamas skirtumas tarp konstruktoriaus ir naikintojo. Konstruktorius ir naikintojas yra specialios klasės narių funkcijos. Konstruktorius ir naikintojas turi tą patį pavadinimą kaip ir klasė, tačiau naikintojas turi tildės (~) ženklą. Pagrindinis skirtumas tarp konstruktoriaus ir naikintuvo yra tas, kad konstruktorius naudojamas objekto atminčiai priskirti, o naikintojas – objekto atminčiai panaikinti.
Kas yra konstruktorius?
Konstruktorius yra speciali klasės nario funkcija, skirta objektui priskirti atmintį. Jis gali būti naudojamas norint pateikti duomenų narių vertes. Sukūrus objektą, iškviečiamas konstruktorius. Jis turi tą patį pavadinimą kaip ir klasės pavadinimas. Konstruktorius negrąžina jokios vertės. Todėl jame nėra grąžinimo tipo. Konstruktorius taip pat gali priimti parametrus. Konstruktorius su parametrais yra žinomas kaip parametrizuotas konstruktorius.
Konstruktoriaus pavyzdys yra toks.
viešosios klasės stačiakampis{
int ilgis, plotis;
viešasis stačiakampis(int p, int q){
ilgis=p;
plotis=q;
}
viešas int apskaičiuotiArea(){
grįžimas (ilgisplotis);
}
}
Pagal aukščiau pateiktą kodo dalį konstruktoriaus pavadinimas yra toks pat kaip ir klasės pavadinimas. Konstruktorius Stačiakampis priima du parametrus. Jie yra p ir q. Ilgiui priskiriama sveikojo skaičiaus reikšmė p. Plotiui priskiriama sveikojo skaičiaus reikšmė q. Skiltyje calcu alteArea apskaičiuojamas ilgio ir pločio dauginimas, norint rasti stačiakampio plotą. Pagrindinėje programoje programuotojas gali sukurti Stačiakampio tipo objektą ir perduoti argumentus. pvz. Stačiakampis stačiakampis1=naujas Stačiakampis(2, 3). Tada iškviečiamas parametrizuotas konstruktorius ir priskiria reikšmes ilgiui ir pločiui.
01 pav.: konstruktorius ir naikintojas
Kai yra konstruktorius be jokių parametrų, jis vadinamas numatytuoju konstruktoriumi. Jei programuotojas neapibrėžia konstruktoriaus, bus iškviestas numatytasis konstruktorius. Jei yra klasė kaip Studentas ir kai programuotojas sukuria Studento tipo objektą, iškviečiamas numatytasis konstruktorius. pvz. Mokinys s1=naujas Mokinys(); Klasėje gali būti keli konstruktoriai su skirtingais parametrais ir skirtingais duomenų tipais. Atitinkamai galima iškviesti atitinkamą konstruktorių. Todėl konstruktoriai gali būti perkrauti.
Kas yra naikintojas?
Destruktorius yra speciali klasės nario funkcija. Jis naudojamas atminčiai paskirstyti konstruktoriaus sukurtą objektą. Destruktorius iškviečiamas, kai objektas sunaikinamas. Ji atlieka saugyklos išvalymą, kurios nebereikia. Kaip ir konstruktorius, naikintojas turi tą patį pavadinimą kaip ir klasė. Jame taip pat yra tildės (~) simbolis.
Destruktorius nepateikia jokios reikšmės. Skirtingai nei konstruktorius, destruktorius nepriima jokių parametrų. Taigi, destruktorius nepalaiko perkrovos. Destruktoriaus paskelbimas laikomas gera programavimo praktika, nes atlaisvinama atminties vieta ir ta vieta gali būti naudojama kai kuriems kitiems objektams saugoti. Destructor sintaksė yra panaši į ~className() { }. pvz. ~ Stačiakampis() { }; Klasėje gali būti tik vienas naikintojas.
Kokie yra Constructor ir Destructor panašumai?
- Tiek konstruktorius, tiek naikintojas yra susieti su objektais.
- Tiek konstruktorius, tiek naikintojas nepateikia jokios reikšmės.
- Tiek konstruktorius, tiek naikintojas iškviečiami automatiškai.
Kuo skiriasi konstruktorius ir naikintojas?
Konstruktorius prieš naikintoją |
|
Konstruktorius yra specialus klasės narys, naudojamas objekto atminčiai priskirti. | Destruktorius yra specialus klasės narys, naudojamas objekto atminčiai atskirti. |
Iškvietimo metodas | |
Kuriant objektą iškviečiamas konstruktorius. | Destruktorius iškviečiamas, kai objektas sunaikinamas arba ištrinamas. |
Naudojimas | |
Atminčiai objektams paskirstyti naudojamas konstruktorius. | Destruktorius naudojamas objektų atminčiai atskirti. |
Parametrai | |
Konstruktorius priima parametrus. | Destruktorius nepriima parametrų. |
Konstruktorių ir naikintojų skaičius | |
Gali būti keli konstruktoriai su skirtingu parametrų skaičiumi ir skirtingų tipų parametrais. | Klasėje gali būti vienas naikintojas. |
Vykdymo greitis | |
Konstruktorius turi tokį patį pavadinimą kaip ir klasės pavadinimas. | Destruktorius turi tokį patį pavadinimą kaip ir klasės pavadinimas su tildės (~) simboliu. |
Perkraunama | |
Konstruktorius gali būti perkrautas. | Destruktorius negali būti perkrautas. |
Santrauka – konstruktorius prieš destruktorius
OOP yra įprasta programinės įrangos kūrimo paradigma. Tai gali supaprastinti sudėtingą projektą. OOP naudojamas konstruktorius ir naikintojas. Konstruktorius ir naikintojas turi tą patį pavadinimą kaip ir klasė, tačiau naikintojas turi ~ ženklą. Skirtumas tarp konstruktoriaus ir naikintuvo yra tas, kad konstruktorius naudojamas objekto atminčiai priskirti, o naikintojas – objekto atminties panaikinimui.
Atsisiųskite Constructor vs Destructor PDF failą
Galite atsisiųsti šio straipsnio PDF versiją ir naudoti ją neprisijungus, kaip nurodyta citatos pastaboje. Atsisiųskite PDF versiją čia: Skirtumas tarp konstruktoriaus ir naikintojo