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.



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



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

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);
  }
}



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