Sobes.tech
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.