Sobes.tech
Junior — Middle

Czym różnią się pola klasy od zmiennych lokalnych wewnątrz metodów w Java?

sobes.tech AI

Odpowiedź od AI

Pola klasy (zmienne instancji lub pola statyczne) i zmienne lokalne wewnątrz metod w Javie różnią się pod względem zakresu, czasu życia i miejsca przechowywania:

  • Pola klasy:

    • Deklarowane wewnątrz klasy, ale poza metodami.
    • Przechowywane w obiekcie (jeśli nie są statyczne) lub w obszarze klasy (jeśli są statyczne).
    • Zachowują wartość między wywołaniami metod.
    • Dostępne z różnych metod klasy (w zależności od poziomu dostępu).
  • Zmienne lokalne:

    • Deklarowane wewnątrz metody.
    • Istnieją tylko podczas wykonywania metody.
    • Przechowywane na stosie wywołań.
    • Nie są dostępne poza metodą, w której zostały zadeklarowane.

Przykład:

public class Example {
    int field = 10; // pole klasy

    public void method() {
        int localVar = 5; // zmienna lokalna
        System.out.println(field + localVar);
    }
}

Tutaj field zachowuje stan obiektu, a localVar istnieje tylko podczas wykonywania metody method.