Junior — Middle
Care este diferența dintre câmpurile unei clase și variabilele locale din interiorul metodelor în Java?
sobes.tech AI
Răspuns de la AI
Câmpurile clasei (variabilele de instanță sau câmpurile statice) și variabilele locale din metode în Java diferă în privința domeniului de vizibilitate, duratei de viață și locului de stocare:
-
Câmpurile clasei:
- Sunt declarate în interiorul clasei, dar în afara metodelor.
- Sunt stocate în obiect (dacă nu sunt statice) sau în zona clasei (dacă sunt statice).
- Păstrează valoarea între apelurile de metodă.
- Sunt accesibile din diferite metode ale clasei (în funcție de nivelul de acces).
-
Variabilele locale:
- Sunt declarate în interiorul unei metode.
- Există doar în timpul execuției metodei.
- Sunt stocate în stiva de apeluri.
- Nu sunt accesibile în afara metodei în care sunt declarate.
Exemplu:
public class Example {
int field = 10; // câmp de clasă
public void method() {
int localVar = 5; // variabilă locală
System.out.println(field + localVar);
}
}
Aici, field păstrează starea obiectului, în timp ce localVar există doar în timpul execuției metodei method.