Java Tutorial/Language/Variable Scope — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 08:06, 1 июня 2010
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:
- In a class body as class fields. Variables declared here are referred to as class-level variables.
- As parameters of a method or constructor.
- In a method"s body or a constructor"s body.
- 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