Junior — Middle
Mi a különbség az osztály mezői és a metódusokon belüli helyi változók között Java-ban?
sobes.tech MI
Válasz az MI-től
A Java osztály mezői (példányváltozók vagy statikus mezők) és a metódusokon belüli helyi változók különböznek hatókörükben, élettartamukban és tárolási helyükben:
-
Osztály mezők:
- Az osztályon belül, de a metódusokon kívül vannak deklarálva.
- Objektumban (ha nem statikusak) vagy az osztály területén (ha statikusak) tárolódnak.
- Megőrzik értéküket a metódushívások között.
- Különböző osztálymetódusokból elérhetők (a hozzáférési szinttől függően).
-
Helyi változók:
- Egy metóduson belül vannak deklarálva.
- Csak a metódus végrehajtása alatt léteznek.
- A hívási veremben (stack) tárolódnak.
- Nem elérhetők azon kívül, ahol deklarálva vannak.
Példa:
public class Example {
int field = 10; // osztálymező
public void method() {
int localVar = 5; // helyi változó
System.out.println(field + localVar);
}
}
Itt a field az objektum állapotát tartja, míg a localVar csak a method végrehajtása alatt létezik.