Jelenlegi hely

3.3. Érvényességi tartomány

A változó érvényességi tartománya a programnak az a területe, ahol a változó használható egyszerű névként. Ezen kívül meghatározza, hogy a rendszer mikor foglal le és szabadít fel memóriát a változók számára.

A változódeklaráció helye határozza meg az érvényességi tartományt. A következő ábrán látható négy kategóriát különböztetünk meg:

Érvényességi tartomány

A tagváltozó (member variable) az osztály vagy objektum része. Az osztályon belül, de a metódusokon kívül lehet deklarálni. A tagváltozó az osztály egészében látható.

A lokális változók (local variable) egy kódblokkon belül vannak. A láthatóságuk a deklaráció helyétől az őket közvetlenül körülvevő blokk végéig tart.

A metódusok formális paraméterei (method parameters) az egész metóduson belül láthatók.

A kivételkezelő paraméterek (exception handler parameters) hasonlók a formális paraméterekhez.

Figyeljük meg a következő példát:

if (...) {
    int i = 17;
    ...
}
System.out.println("The value of i = " + i);    //error

Az utolsó sor kívül van az i lokális változó érvényességi körén, ezért a fordítás hibával leáll.