Enamik programmeerimiskeeli toetab objektorienteeritud programmeerimist (OOP). Objekte kasutava tarkvara või programmi modelleerimiseks aitab see paradigma. OOP parandab tootlikkust ja hooldatavust. OOP-is peetakse kõike objektiks. Objektid luuakse või visualiseeritakse klasside abil. Ehitaja ja hävitaja on objektorienteeritud programmeerimises tavalised mõisted. See artikkel räägib konstruktori ja hävitaja erinevusest. Konstruktor ja destruktor on klassis eriliikmete funktsioonid. Ehitajal ja hävitajal on klassiga sama nimi, kuid hävitajal on tilde (~) märk. võtme erinevus see on ehitaja ja hävitaja vahel konstruktorit kasutatakse objektile mälu eraldamiseks, hävitajat kasutatakse objekti mälu eraldamiseks.
1. Ülevaade ja peamised erinevused
2. Mis on konstruktor?
3. Mis on hävitaja
4. Ehitaja ja hävitaja sarnasused
5. Kõrvuti võrdlus - konstruktor vs hävitaja tabelina
6. Kokkuvõte
Ehitaja on klassi eriliikme funktsioon mälu eraldamiseks objektile. Seda saab kasutada andmeliikmete väärtuste pakkumiseks. Objekti loomisel kutsutakse konstruktorit. Sellel on sama nimi kui klassi nimega. Ehitaja ei tagasta mingit väärtust. Seetõttu ei sisalda see tagastamise tüüpi. Ehitaja võib aktsepteerida ka parameetreid. Parameetritega konstruktorit tuntakse parameetrilise konstruktorina.
Konstruktori näide on järgmine.
avaliku klassi ristkülik
int pikkus, laius;
avalik ristkülik (int p, int q)
pikkus = p;
laius = q;
public int calcArea ()
tagasitulek (pikkus * laius);
Ülaltoodud kooditüki järgi on konstruktoril sama nimi kui klassi nimega. Ristkülik konstruktor aktsepteerib kahte parameetrit. Nad on p ja q. Pikkusele omistatakse täisarv v. Täisarv q omistatakse laiusele. CalcualteArea piirkonnas arvutatakse ristküliku pindala leidmiseks pikkuse ja laiuse korrutamine. Põhiprogrammis saab programmeerija luua ristküliku tüüpi objekti ja edastada argumendid. nt. Ristkülik rect1 = uus ristkülik (2,3). Seejärel kutsutakse parametriseeritud konstruktor ja omistatakse väärtused pikkusele ja laiusele.
Joonis 01: konstruktor ja hävitaja
Kui leidub konstruktor, millel puuduvad parameetrid, siis nimetatakse seda vaikekonstruktoriks. Kui programmeerija ei määratle konstruktorit, kutsutakse vaikimisi konstruktor. Kui on klass õpilaseks ja kui programmeerija loob objekti tüüpi Student, kutsutakse vaikimisi konstruktor. nt. Õpilane s1 = uus õpilane (); Klassis võib olla mitu konstruktsiooni, millel on erinevad parameetrid ja erinevad andmetüübid. Vastavat konstruktorit saab vastavalt nimetada. Seetõttu võivad konstruktorid olla üle koormatud.
Hävitaja on klassis eriliikmete funktsioon. Seda kasutatakse mälu eraldamiseks konstruktori loodud objekti jaoks. Objekti hävitamisel võetakse kasutusele hävitaja. See viib läbi puhastussalvestuse, mida enam ei vajata. Nagu konstruktoril, on hävitajal sama nimi kui klassil. See sisaldab ka sümbolit tilde (~).
Hävitaja ei tagasta väärtust. Erinevalt konstruktorist ei aktsepteeri hävitaja ühtegi parameetrit. Niisiis, hävitaja ei toeta ülekoormamist. Hävitaja kuulutamist peetakse heaks programmeerimistavaks, kuna see vabastab mäluruumi ja seda ruumi saab kasutada mõne muu objekti salvestamiseks. Hävitaja süntaks sarnaneb ~ className () -ga. nt. ~ Ristkülik () ; Klassis võib olla ainult üks hävitaja.
Konstruktor vs hävitaja | |
Ehitaja on klassi eriliige, mida kasutatakse objektile mälu eraldamiseks. | Hävitaja on klassi eriliige, mida kasutatakse objekti mälu määramiseks. |
Kutsu meetod | |
Objekti loomisel kutsutakse konstruktorit. | Hävitaja kutsutakse, kui objekt hävitatakse või kustutatakse. |
Kasutamine | |
Objektide jaoks mälu eraldamiseks kasutatakse konstruktorit. | Objektide mälu määramiseks kasutatakse hävitajat. |
Parameetrid | |
Ehitaja aktsepteerib parameetreid. | Hävitaja ei aktsepteeri parameetreid. |
Konstruktorite ja hävitajate arv | |
Konstruktoreid võib olla mitu, erineva arvu parameetrite ja erinevat tüüpi parameetritega. | Klassis võib olla üks hävitaja. |
Täitmise kiirus | |
Ehitajal on sama nimi kui klassi nimega. | Hävitajal on sama nimi kui klassinimel koos sümboliga tilde (~). |
Ülekoormamine | |
Ehitaja võib olla üle koormatud. | Hävitajat ei saa üle koormata. |
OOP on tarkvara arendamisel tavaline paradigma. See võib keerukat projekti lihtsustada. OOP-is kasutatakse konstruktorit ja hävitajat. Ehitajal ja hävitajal on klassiga sama nimi, kuid hävitajal on ~ märk. Erinevus konstruktori ja hävitaja vahel on see, et konstruktorit kasutatakse objektile mälu eraldamiseks ja hävitajat kasutatakse objekti mälu eraldamiseks..
Selle artikli PDF-versiooni saate alla laadida ja seda võrguühenduseta otstarbel kasutada tsitaatide märkuse kohaselt. Laadige PDF-fail alla siit: Erinevus konstruktori ja hävitaja vahel
1.tutorialspoint.com. „Java objekt ja klassid”. Mõte, Saadaval siin