Rozdiel medzi objektom a inštanciou

Object vs Instance

Objektovo orientované programovanie (OOP) je jedným z najpopulárnejších programovacích paradigiem. V OOP sa zameriava na premýšľanie o probléme, ktorý sa má vyriešiť z hľadiska prvkov skutočného sveta, a predstavuje problém z hľadiska predmetov a ich správania. Mnoho programovacích jazykov, ktoré podporujú kľúčové aspekty OOP (nazývané OOP jazyky), má túto triedu ako hlavný programovací nástroj. Nazývajú sa triedou. Triedy sú abstraktným znázornením objektov skutočného sveta. Triedy majú vlastnosti nazývané atribúty. Atribúty sú implementované ako globálne a inštančné premenné. Metódy v triedach predstavujú alebo definujú správanie týchto tried. Metódy a atribúty tried sa nazývajú členovia triedy. Jednoducho povedané, trieda je plán alebo šablóna pre konkrétny objekt v reálnom živote. Objekt je teda pamäťovým blokom, ktorý sa používa na ukladanie potrebných informácií podľa tohto plánu. Inštancia je blok pamäte, ktorý odkazuje na objekt.

Čo je to Objekt?

Objekty sú výsledkom okamžitého vytvorenia triedy. Okamžitie je proces prevzatia plánu a definovania každého atribútu a správania tak, aby výsledný objekt skutočne predstavoval objekt skutočného života. Objekt je vyhradený a súvislý blok pamäte vyhradený na ukladanie informácií, ako sú premenné, metódy alebo funkcie atď. Objekt sa vytvára pomocou nového operátora v programovacom jazyku Java. Napríklad, ak existuje trieda s názvom Car, na vytvorenie objektu triedy Car sa dá použiť nasledujúce.

nové auto();

Nový operátor tu vytvorí objekt Car a vráti sa odkaz na objekt. Nový operátor sa spolu s konštruktorom triedy Car používa na vytvorenie nového objektu. Životnosť objektu začína od volania jeho konštruktérovi po jeho zničenie. Akonáhle nejaký predmet nebude predložený, bude odstránený / zničený zberateľom odpadu.

Čo je to inštancia?

Inštancia je blok pamäte, ktorý obsahuje odkaz na objekt. Inými slovami, inštancia si uchová adresu počiatočného pamäťového bloku, v ktorom je objekt uložený. Názov inštancie sa v skutočnosti môže použiť na prístup na začiatok oblasti pamäti objektov. Offsety zo začiatočnej pamäte sa vypočítavajú pomocou modulu runtime, takže môžeme ísť tam, kde sú uložené jednotlivé údaje alebo odkazy na metódy. Nasledujúci kód Java môže byť použitý na vytvorenie inštancie objektu Car.

MyCar = nové auto ();

Ako bolo uvedené vyššie, nový operátor vytvorí objekt Car a vráti naň odkaz. Tento odkaz je uložený v premennej typu Car myCar. Takže myCar je inštancia vytvoreného objektu Car.

Aký je rozdiel medzi objektom a inštanciou?

Objekt je súvislý blok pamäte, ktorý ukladá skutočné informácie, ktoré odlišujú tento objekt od ostatných objektov, zatiaľ čo inštancia je odkazom na objekt. Je to blok pamäte, ktorý ukazuje na počiatočnú adresu, kde je objekt uložený. Dva prípady sa môžu týkať toho istého objektu. Životnosť objektu a inštancie nesúvisí. Preto môže byť inštancia neplatná. Po odstránení všetkých inštancií smerujúcich k objektu bude objekt zničený.