Diferența dintre variabila de instanță și variabila locală

Diferența dintre variabila de instanță și variabila locală
Diferența dintre variabila de instanță și variabila locală

Video: Diferența dintre variabila de instanță și variabila locală

Video: Diferența dintre variabila de instanță și variabila locală
Video: Diferenta dintre camerele copiilor | Ariana vs Alex 2024, Iulie
Anonim

variabilă de instanță vs variabilă locală

O variabilă de instanță este un tip de variabilă care este prezentă în programarea orientată pe obiecte. Este o variabilă care este definită într-o clasă și fiecare obiect al acelei clase deține o copie separată a acelei variabile. Pe de altă parte, utilizarea variabilelor locale nu se limitează la limbaje de programare orientate pe obiecte. Este o variabilă care poate fi evaluată numai în cadrul unui anumit bloc de cod (de exemplu, funcție, bloc de buclă etc.) în care este definită. Din acest motiv, se spune că variabilele locale au un domeniu de aplicare local.

Ce este o variabilă de instanță?

Variabilele de instanță sunt folosite în programarea orientată pe obiect pentru stocarea stării fiecărui obiect dintr-o clasă. Ele sunt cunoscute și ca variabile membre sau variabile de câmp. Variabilele de instanță sunt declarate fără a utiliza cuvântul cheie static în Java. Valorile stocate în variabilele de instanță sunt unice pentru fiecare obiect (fiecare obiect are o copie separată), iar valorile stocate în ele reprezintă starea acelui obiect. Spațiul pentru o variabilă de instanță este alocat în heap, atunci când acel obiect este alocat în heap. Prin urmare, variabilele de instanță sunt păstrate în memorie atâta timp cât obiectul este activ. De exemplu, culoarea unei mașini este independentă de culoarea altei mașini. Deci culoarea unui obiect auto poate fi stocată într-o variabilă de instanță. În practică, variabilele de instanță sunt declarate în interiorul claselor și în afara metodelor. De obicei, variabilele de instanță sunt declarate ca private, astfel încât să poată fi accesate numai în cadrul clasei în care este declarată.

Ce este o variabilă locală?

Variabilele locale sunt variabile cu un domeniu de aplicare local și sunt declarate într-un anumit bloc de cod. Variabilele locale pot fi văzute ca variabile care sunt folosite de o metodă pentru a-și stoca starea temporară. Sfera unei variabile locale este determinată utilizând locația în care este declarată variabila, iar cuvintele cheie speciale nu sunt folosite în acest scop. De obicei, accesul la o variabilă locală este limitat în cadrul blocului de cod pe care este declarată (adică între acoladele de deschidere și de închidere ale acelui bloc de cod). Variabilele locale sunt de obicei stocate în stiva de apeluri. Acest lucru ar permite apelurilor recursive de funcții să își păstreze propriile copii ale variabilelor locale care să fie stocate în spații separate de adrese de memorie. Când metoda își termină execuția, informațiile despre acea metodă sunt scoase din stiva de apeluri, distrugând și variabilele locale care au fost stocate.

Care este diferența dintre variabila de instanță și variabila locală?

Variabilele de instanță sunt declarate în clase în afara metodelor și stochează starea unui obiect, în timp ce variabilele locale sunt declarate în blocuri de cod și sunt folosite pentru stocarea stării unei metode. O variabilă de instanță este activă atâta timp cât obiectul care conține acea variabilă este activă, în timp ce o variabilă locală este activă în timpul execuției acelei metode/bloc de cod. O variabilă de instanță (care este declarată publică) poate fi accesată în cadrul clasei, în timp ce o variabilă locală poate fi accesată numai în blocul de cod pe care este declarată. Utilizarea variabilelor de instanță este limitată doar la programarea orientată pe obiecte, în timp ce variabilele locale nu au o astfel de limitare.

Recomandat: