Variable Scope
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. |
public class MainClass {
public static void main(String[] args) {
for (int x = 0; x < 5; x++) {
System.out.println(x);
}
}
}
|
|
Rule number 2 is a nested block can access variables declared in the outer block. Consider this code. |
public class MainClass {
public static void main(String[] args) {
for (int x = 0; x < 5; x++) {
for (int y = 0; y < 3; y++) {
System.out.println(x);
System.out.println(y);
}
}
}
}
|
|
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);
}
}
output:
|
|
inner = 2
outer = 1
inner = 3
outer = 1 |
| | | | |
No comments:
Post a Comment