Java 变量作用域
变量作用域
变量作用域,即变量可被访问的范围
Java中变量分为全局变量、局部变量
在类的的变量是有作用域这个概念的,Java 中除了属性【类属性】是全局变量,其他变量都是局部变量,即只能在这个方法或代码块中访问
全局变量
全局变量即定义在方法/代码块之外的变量为全局变量,它的作用域是全局作用域,即整个源文件。
全局变量可以添加访问修饰符
!全局变量有默认值!
class ... {
public static void main (String[] args) {
System.out.println(new VarTest().globalVar);
}
}
class VarTest{
// 全局变量可以直接使用
// 因为有默认值
int globalVar;
}
类属性的生命周期
类属性的声明周期从实例化对象开始,直到程序结束或没有任何变量指向这个对象。
局部变量
局部变量即定义在方法体内或代码块内的变量称为局部变量,它的作用域为局部作用域,即:仅在定义这个变量的方法体或代码块内可访问。
局部变量不能添加访问修饰符
在不同的方法变量与变量之间互不影响
!局部变量没有默认值!
class ... {
public static void main (String[] args) {
new VarTest().function();
}
}
class VarTest{
public void function () {
int num;
// 会报错
// 因为局部变量没有默认值
// 需要先赋值后使用
System.out.println(num);
}
}
局部变量可以与全局变量重名
局部变量的生命周期
从调用方法到方法结束,即随着方法的运行而产生,随着方法的结束而销毁。
变量的访问顺序
局部变量可以与全局变量重名,在访问时,按照就近原则访问,即:如果在当前方法/代码块中存在这个变量就访问这个变量,如果当前方法/代码块中不存在该变量,则会去寻找有没有这个名称的全局变量,如果有访问,如果没有报错。

浙公网安备 33010602011771号