Java Tutorial/Language/Variable Scope

Материал из Java эксперт
Перейти к: навигация, поиск

Variable Scope

The scope of a variable is the part of the program over which the variable name can be referenced. (from Ivor Horton"s Beginning Java 2, JDK 5 Edition by Ivor Horton)

You cannot refer to a variable before its declaration.

You can declare variables in several different places:

  1. In a class body as class fields. Variables declared here are referred to as class-level variables.
  2. As parameters of a method or constructor.
  3. In a method"s body or a constructor"s body.
  4. Within a statement block, such as inside a while or for block.

Variable scope refers to the accessibility of a variable.

The rule 1 is that variables defined in a block are only accessible from within the block. The scope of the variable is the block in which it is defined. For example, consider the following for statement.



   <source lang="java">

public class MainClass {

 public static void main(String[] args) {
   for (int x = 0; x < 5; x++) {
       System.out.println(x);
   }
 }

}</source>



Variables declared as method parameters can be accessed from within the method body. Class-level variables are accessible from anywhere in the class.

If a method declares a local variable that has the same name as a class-level variable, the former will "shadow" the latter. To access the class-level variable from inside the method body, use the this keyword.


Variable Scope in a block

   <source lang="java">

public class MainClass {

 public static void main(String[] args) {
   int outer = 1;
   {
     int inner = 2;
     System.out.println("inner = " + inner);
     System.out.println("outer = " + outer);
   }
   int inner = 3;
   System.out.println("inner = " + inner);
   System.out.println("outer = " + outer);
 }

}</source>



inner = 2
outer = 1
inner = 3
outer = 1