Rozdiel medzi objektom a inštanciou

Rozdiel medzi objektom a inštanciou
Rozdiel medzi objektom a inštanciou

Video: Rozdiel medzi objektom a inštanciou

Video: Rozdiel medzi objektom a inštanciou
Video: MeeGo - забытая система Nokia. 2024, Júl
Anonim

Objekt verzus inštancia

Objektovo orientované programovanie (OOP) je jednou z najpopulárnejších programovacích paradigiem. V OOP sa pozornosť sústreďuje na premýšľanie o probléme, ktorý sa má vyriešiť, z hľadiska prvkov reálneho sveta a na reprezentáciu problému z hľadiska objektov 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 triedne založené. Triedy sú abstraktnou reprezentáciou objektov reálneho sveta. Triedy majú vlastnosti nazývané atribúty. Atribúty sú implementované ako globálne a inštancie premenné. Metódy v triedach reprezentujú alebo definujú správanie týchto tried. Metódy a atribúty tried sa nazývajú členovia triedy. Veľmi jednoducho povedané, trieda je plán alebo šablóna pre konkrétny objekt v reálnom živote. Objekt je teda pamäťový blok (bloky), ktorý sa používa na ukladanie potrebných informácií podľa tohto plánu. Inštancia je pamäťový blok, ktorý odkazuje na objekt.

Čo je objekt?

Objekty sú výsledkom vytvárania inštancie triedy. Instanciácia 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 pridelený na ukladanie informácií, ako sú premenné, metódy alebo funkcie atď. Objekt je vytvorený pomocou operátora new v programovacom jazyku Java. Napríklad, ak existuje trieda s názvom Car, potom na vytvorenie objektu triedy Car možno použiť nasledujúce.

nové auto();

Tu nový operátor vytvorí objekt Car a vráti odkaz na objekt. Operátor new spolu s konštruktorom triedy Car sa používa na vytvorenie nového objektu. Životnosť objektu začína od volania jeho konštruktéra až po čas jeho zničenia. Akonáhle sa objekt neodkáže, bude odstránený/zničený zberačom odpadu.

Čo je inštancia?

Inštancia je pamäťový blok, ktorý obsahuje odkaz na objekt. Inými slovami, inštancia zachová adresu počiatočného pamäťového bloku, kde je objekt uložený. V skutočnosti možno názov inštancie použiť na prístup k začiatku oblasti pamäte objektov. Offsety zo štartovacej pamäte vypočíta runtime engine, aby sme mohli prejsť tam, kde sú uložené jednotlivé dáta alebo referencie metód. Nasledujúci odstrihnutý kód Java možno použiť na vytvorenie inštancie objektu Car.

Auto myCar=nové auto();

Ako je uvedené vyššie, nový operátor vytvorí objekt Car a vráti referenciu naň. Táto referencia je uložená v premennej typu auta 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á aktuálne informácie, ktoré odlišujú tento objekt od iných objektov, zatiaľ čo inštancia je odkaz na objekt. Je to blok pamäte, ktorý ukazuje na počiatočnú adresu, kde je objekt uložený. Dva prípady môžu odkazovať na ten istý objekt. Životnosť objektu a inštancie nesúvisí. Preto môže byť inštancia nulová. Po odstránení všetkých inštancií smerujúcich na objekt bude objekt zničený.

Odporúča: