在Java中,变量作用域分为四个类别,类级,对象实例级,方法级,块级。
1)类级变量又称全局级变量或静态变量,需要使用static关键字修饰,类级变量在类定义后就已经存在,占用内存空间,可以通过类名访问,不需要实例化。
2)对象实例级就是成员变量,实例化后才会分配空间,才能被访问
3)方法级变量就是在方法内部定义的变量,就是局部变量
4)块级变量就是定义在一个块内部的变量,他的作用域只限于块内
这里插入一段代码
package Test;
public class Test {
public static void main(String[] args) {
int x = 12;
{
int y = 96;
System.out.println("x is "+x);
System.out.println("y is "+y);
}
y = x;
System.out.println("x is "+x);
}
}
如果运行的话会出现
因为Y定义在块内,却在块外引用了它,所以会出现错误,那么改一下
package Test;
public class Test {
public static void main(String[] args) {
int x = 12;
int y = 96;
{System.out.println("x is "+x);
System.out.println("y is "+y);
}
y = x;
System.out.println("x is "+x);
}
}
运行结果
注:
1:方法内部处理能访问方法级的变量,还可以访问类级和实例级的变量。
2:块内部能够访问类级,实例级变量,如果块被包含在方法内部,他还可以访问方法级的变量。
3:方法级的变量和块级的变量必须被显示地初始化,否则不能被访问。