Objekt vs eksemplar
Objektorienteeritud programmeerimine (OOP) on üks populaarsemaid programmeerimisparadigmasid. OOP-is keskendutakse lahendatava probleemi mõtlemisele reaalse maailma elementide osas ning probleemi esindamisele objektide ja nende käitumise osas. Paljudel programmeerimiskeeltel, mis toetavad OOP võtmeaspekte (nimetatakse OOP-keelteks), on klass peamiseks programmeerimisvahendiks. Neid nimetatakse klassipõhisteks. Klassid on reaalse maailma objektide abstraktne kujutis. Klassidel on omadused, mida nimetatakse atribuutideks. Atribuute rakendatakse globaalsete ja esinemismuutujatena. Klasside meetodid tähistavad või määratlevad nende klasside käitumist. Klasside meetodeid ja atribuute nimetatakse klassi liikmeteks. Väga lihtsustatult öeldes on klass konkreetse reaalse elu objekti plaan või mall. Seega on objekt mäluplokk (id), mida kasutatakse vajaliku teabe salvestamiseks vastavalt käesolevale joonisele. Eksemplar on objektile viitav mäluplokk.
Mis on objekt?
Objektid on klassi kiirendamise tulemused. Instantimine on kavandi võtmise ja iga atribuudi ja käitumise määratlemise protsess, nii et saadud objekt esindab tegelikult reaalset eluobjekti. Objekt on spetsiaalne ja pidev mäluplokk, mis on eraldatud selliste andmete talletamiseks nagu muutujad, meetodid või funktsioonid jne. Objekt luuakse uue operaatori abil Java programmeerimiskeeles. Näiteks kui on olemas klass nimega Auto, siis autoklassi objekti loomiseks saab kasutada järgmist.
uus auto();
Siin loob uue operaatori autoobjekt ja tagastatakse viide objektile. Uue objekti loomiseks kasutatakse uut operaatorit koos autoklassi konstruktoriga. Objekti eluiga algab kutsest selle ehitajani kuni selle hävitamiseni. Kui objektile ei ole viidatud, eemaldab / hävitab selle prügikoguja.
Mis on eksemplar?
Eksemplar on mäluplokk, mis sisaldab viidet objektile. Teisisõnu, näiteks instantsioon hoiab selle algmäluploki aadressi, kus objekt on salvestatud. Tegelikult saab eksemplari nime kasutada objektide mäluala algusesse pääsemiseks. Käivitusmootor arvutab stardimälust tekkinud nihked, et saaksime minna sinna, kuhu üksikute andmete või meetodi viited on salvestatud. Pärast katkenud Java-koodi saab kasutada autoobjekti esinemisjuhu loomiseks.
Car myCar = uus auto ();
Nagu eespool mainitud, loob uus operaator auto objekti ja tagastab sellele viite. See viide salvestatakse autotüübi muutujasse myCar. Niisiis, myCar on loodud Car objekti objekt.
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 hoiustamisaadressile. Kaks eset võivad viidata samale objektile. Objekti ja juhtumi eluiga ei ole omavahel seotud. Seetõttu võib eksemplar olla olematu. Kui kõik objektile osutavad juhtumid on eemaldatud, hävitatakse see objekt.