Sobes.tech
Junior — Middle

Milline on erinevus klassi väljade ja meetodite sees olevate kohalike muutujate vahel Java-s?

sobes.tech AI

Vastus AI-lt

Klassi väljad (näiteks näidismuutujad või statilised väljad) ja kohalikud muutujad meetodite sees Java-s erinevad ulatuse, eluea ja salvestuskoha poolest:

  • Klassi väljad:

    • Deklareerivad klassi sees, kuid väljaspool meetodeid.
    • Salvestatakse objektis (kui need ei ole statilised) või klassi piirkonnas (kui need on statilised).
    • Säilitavad väärtuse meetodite vahel.
    • On erinevatest klassi meetoditest kättesaadavad (sõltuvalt juurdepääsutasemest).
  • Kohalikud muutujad:

    • Deklareerivad meetodi sees.
    • Eksisteerivad ainult meetodi täitmise ajal.
    • Salvestatakse kutsumise virna.
    • Ei ole kättesaadavad väljaspool meetodit, kus need on deklareeritud.

Näide:

public class Example {
    int field = 10; // klassi väli

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

Siin säilitab field objekti oleku, samas kui localVar eksisteerib ainult meetodi method täitmise ajal.