Variabilă variabilă vs variabilă locală
O variabilă de instanță este un tip de variabilă care este prezentă în programarea orientată obiect. Este o variabilă care este definită într-o clasă și fiecare obiect din acea clasă deține o copie separată a acelei variabile. Pe de altă parte, utilizarea variabilelor locale nu se limitează la limbile de programare orientate obiect. Este o variabilă care poate fi evaluată numai într-un 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 utilizate în programarea orientată obiect pentru stocarea stării fiecărui obiect într-o clasă. Ele sunt, de asemenea, cunoscute 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 live. 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 exemplu. Î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 acestea să poată fi accesate numai în cadrul clasei declarate.
Ce este o variabilă locală?
Variabilele locale sunt variabile care au un domeniu de aplicare local și sunt declarate într-un anumit bloc de coduri. Variabilele locale pot fi văzute ca variabile care sunt utilizate de o metodă pentru a stoca starea lor temporară. Domeniul de aplicare al unei variabile locale este determinat folosind locația în care este declarată variabila, iar cuvintele cheie speciale nu sunt utilizate în acest scop. În mod tipic, accesul la o variabilă locală este limitat în cadrul blocului de cod care este declarat (adică între bretelele de deschidere și închidere ale blocului de cod). Variabilele locale sunt de obicei stocate în stiva apelurilor. Acest lucru ar permite apelurilor funcției recursive să își păstreze propriile copii ale variabilelor locale care vor fi stocate în spații separate de adrese de memorie. Când metoda termină executarea, informațiile despre această metodă sunt scoase din stiva apelurilor, distrugând, de asemenea, variabilele locale stocate.
Care este diferența dintre Variabila instanței ș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 blocurile de coduri și sunt utilizate pentru stocarea stării unei metode. O variabilă de instanță este live atâta timp cât obiectul care conține această variabilă este live, în timp ce o variabilă locală este activă în timpul executării 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 cadrul blocului de cod care este declarat. Utilizarea variabilelor de instanță se limitează la programarea orientată obiect, în timp ce variabilele locale nu au o astfel de limitare.