学科分类
目录
Java基础

变量的作用域

在前面介绍过变量需要先定义后使用,但这并不意味着在变量定义之后的语句中一定可以使用该变量。变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用域。在程序中,变量一定会被定义在某一对大括号中,该大括号所包含的代码区域便是这个变量的作用域。接下来通过一个代码片段来分析变量的作用域,具体示例如下:

上面的代码中,有两层大括号。其中,外层大括号所标识的代码区域就是变量x的作用域,内层大括号所标识的代码区域就是变量y的作用域。

变量的作用域在编程中尤为重要,接下来通过一个案例进一步熟悉变量的作用域,如文件1所示。

文件1 Example04.java

 1    public class Example04 {
 2        public static void main(String[] args) {
 3            int x = 12;      // 定义了变量x
 4            {
 5                int y = 96; // 定义了变量y
 6                System.out.println("x =" + x); // 访问变量x
 7                System.out.println("y =" + y); // 访问变量y
 8            }
 9            y = x;           // 访问变量x,为变量y赋值
 10            System.out.println("x =" + x);     // 访问变量x
 11        }
 12    }

程序编译报错,如图1所示。

图1 运行结果

从图1可以看出,程序编译过程中出现了“y cannot be resolved to avariable”即y不能被解析为一个变量的错误信息。出错的原因在于,在给变量y赋值时超出了它的作用域。将文件1中的第9行代码去掉,再次编译程序将不再报错,运行结果如图2所示。

图2 运行结果

文件1修改后的代码中,变量x、y都在各自的作用域中,因此都可以被访问到。

点击此处
隐藏目录