Objekt vs eksemplar
Objektorienteeritud programmeerimine (OOP) on üks populaarsemaid programmeerimisparadigmasid. OOP-is keskendutakse lahendatavale probleemile mõtlemisele reaalmaailma elementide kaudu ning probleemi esitamisele objektide ja nende käitumise kaudu. Paljudel OOP-i põhiaspekte toetavatel programmeerimiskeeltel (nimetatakse OOP-keelteks) on klass peamise programmeerimisvahendina. Neid nimetatakse klassipõhisteks. Klassid on reaalse maailma objektide abstraktne esitus. Klassidel on omadused, mida nimetatakse atribuutideks. Atribuudid rakendatakse globaalsete ja eksemplari muutujatena. Klasside meetodid esindavad või määratlevad nende klasside käitumist. Klasside meetodeid ja atribuute nimetatakse klassi liikmeteks. Väga lihts alt öeldes on klass konkreetse reaalse elu objekti plaan või mall. Seega on objekt mäluplokk(id), mida kasutatakse vajaliku teabe salvestamiseks vastav alt käesolevale plaanile. Eksemplar on mäluplokk, mis viitab objektile.
Mis on objekt?
Objektid on klassi instantseerimise tulemused. Instantseerimine on kavandi võtmise ja iga atribuudi ja käitumise määratlemise protsess, nii et tulemuseks olev objekt kujutab tegelikult tegelikku eluobjekti. Objekt on spetsiaalne ja pidev mäluplokk, mis on eraldatud teabe salvestamiseks, nagu muutujad, meetodid või funktsioonid jne. Objekt luuakse uue operaatori abil Java programmeerimiskeeles. Näiteks kui on olemas klass nimega Auto, siis saab autoklassi objekti loomiseks kasutada järgmist.
uus auto();
Siin loob uus operaator autoobjekti ja tagastatakse viide objektile. Uue objekti loomisel kasutatakse uut operaatorit koos Autoklassi ehitajaga. Objekti eluiga algab selle ehitaja poole pöördumisest kuni selle hävitamiseni. Kui objektile ei viidata, eemaldab/hävitab prügikorjaja selle.
Mis on eksemplar?
Esijuht on mäluplokk, mis sisaldab viidet objektile. Teisisõnu säilitab eksemplar algmäluploki aadressi, kuhu objekt on salvestatud. Tegelikult saab eksemplari nime kasutada objekti mäluala algusesse pääsemiseks. Käitusaja mootor arvutab nihked käivitusmälust, et saaksime minna sinna, kus salvestatakse üksikud andmed või meetodi viited. Järgmist väljalõigatud Java koodi saab kasutada autoobjekti eksemplari loomiseks.
Auto minuAuto=uus auto();
Nagu eespool mainitud, loob uus operaator objekti Auto ja tagastab sellele viite. See viide salvestatakse muutujasse Car type myCar. Niisiis, myCar on loodud Auto objekti eksemplar.
Mis vahe on objektil ja eksemplaril?
Objekt on külgnev mäluplokk, mis salvestab tegelikku teavet, mis eristab seda objekti teistest objektidest, samas kui eksemplar on viide objektile. See on mäluplokk, mis osutab objekti salvestuskoha jälgimisaadressile. Kaks juhtumit võivad viidata samale objektile. Objekti ja eksemplari eluiga ei ole seotud. Seetõttu võib eksemplar olla null. Kui kõik objektile osutavad eksemplarid on eemaldatud, siis objekt hävitatakse.