Muutuja skoop

Klassimuutujad

Klassis saab deklareerida muutujad, mida saab kasutada kõigis selle klassi meetodites.

Klassimuutujad kirjutatakse klassi algusesse, enne meetodeid.

public class Animal {
    public int numberOfLegs;
    public String name;
    public boolean alive = true;
}

Lokaalsed muutujad

Meetodi sees saab muutujat kasutada selle bloki sees, kus see deklareeriti.

Piltlikult öeldes saab antud muutujat kasutada samal ja madalamal tasemel, kui on tema deklaratsioon.

int x = 0;
int y = 10;
if (y > 5) {
    x++;
}
x += 3;

If-lause sees deklareeritud muutujad ei kehti lausest väljas.

int y = 10;
if (y > 5) {
    int z = 2;
}
// System.out.println(z)  Annaks vea, kuna seda muutujat pole deklareeritud

Samamoodi kehtib for- või while-tsükli päises deklareeritud muutuja kogu tsükli jooksul, kuid mitte sellest väljas.

for (int i = 0; i < 10; i++) {
    System.out.println(i);
}
// System.out.println(i) Annaks vea

Samas tsükli sees deklareeritud muutuja kehtib ainult ühe tsükli iteratsiooni jooksul.

for (int i = 0; i < 10; i++) {
    int j = 2;
    System.out.println(j);
    j++
}

Antud tsükkel prindib alati 2, kuna iga iteratsioon deklareeritakse muutuja j uuesti.