Varijabla instance vs lokalna varijabla
Varijabla instance je tip varijable koja je prisutna u objektno orijentiranom programiranju. To je varijabla koja je definirana u klasi, a svaki objekt te klase drži zasebnu kopiju te varijable. S druge strane, upotreba lokalnih varijabli nije ograničena na objektno orijentirane programske jezike. To je varijabla koja se može procijeniti samo unutar određenog bloka koda (npr. funkcije, bloka petlje, itd.) u kojem je definirana. Iz tog razloga se kaže da lokalne varijable imaju lokalni opseg.
Šta je varijabla instance?
Varijable instance se koriste u objektno orijentiranom programiranju za pohranjivanje stanja svakog objekta u klasi. One su također poznate kao varijable članova ili varijable polja. Promenljive instance se deklarišu bez upotrebe ključne reči static u Javi. Vrijednosti pohranjene u varijablama instance jedinstvene su za svaki objekt (svaki objekt ima zasebnu kopiju), a vrijednosti pohranjene u njima predstavljaju stanje tog objekta. Prostor za varijablu instance se dodjeljuje u hrpi, kada je taj objekt dodijeljen u hrpi. Stoga se varijable instance čuvaju u memoriji sve dok je objekt živ. Na primjer, boja jednog automobila je nezavisna od boje drugog automobila. Dakle, boja objekta automobila može se pohraniti u varijablu instance. U praksi, varijable instance se deklarišu unutar klasa i izvan metoda. Obično su varijable instance deklarirane kao privatne tako da im se može pristupiti samo unutar klase u kojoj je deklarirana.
Šta je lokalna varijabla?
Lokalne varijable su varijable koje imaju lokalni opseg i deklarirane su unutar određenog kodnog bloka. Lokalne varijable se mogu posmatrati kao varijable koje koristi metoda za pohranjivanje svog privremenog stanja. Opseg lokalne varijable se određuje korištenjem lokacije na kojoj je varijabla deklarirana, a posebne ključne riječi se ne koriste u tu svrhu. Tipično, pristup lokalnoj varijabli je ograničen unutar kodnog bloka koji je deklariran (tj. između otvaranja i zatvaranja zagrada tog kodnog bloka). Lokalne varijable se obično pohranjuju u stek poziva. Ovo bi omogućilo rekurzivnim pozivima funkcija za održavanje vlastitih kopija lokalnih varijabli koje će biti pohranjene u odvojenim memorijskim adresnim prostorima. Kada metoda završi sa svojim izvršavanjem, informacije o toj metodi izlaze iz steka poziva, uništavajući i lokalne varijable koje su pohranjene.
Koja je razlika između varijable instance i lokalne varijable?
Varijable instance su deklarirane unutar klasa izvan metoda i pohranjuju stanje objekta, dok su lokalne varijable deklarirane unutar blokova koda i koriste se za pohranjivanje stanja metode. Varijabla instance je živa sve dok je objekt koji sadrži tu varijablu živ, dok je lokalna varijabla živa za vrijeme izvršavanja te metode/bloka koda. Varijabli instance (koja je deklarirana kao javna) može se pristupiti unutar klase, dok se lokalnoj varijabli može pristupiti samo unutar kodnog bloka koji je deklarirana. Upotreba varijabli instance ograničena je samo na objektno orijentirano programiranje, dok lokalne varijable nemaju takvo ograničenje.