1.JAVA中作用范围是禁止嵌套的
在Java中,在方法(函数)内定义的变量,其作用范围(包括方法的参数)是从它定义的地方开始,到它所作用范围终结的位置结束。也就是说如果你在方法开始的时候就定义了一个变量x,那么直到这个方法结束就不能再定义另一个同名的变量x。如下所示就是一个错误的定义:
public static void fun(){
int x=1;
{
int x=2;//编译错误:和{}外的变量x的作用域重叠
System.out.println("x=" + x);
}
}
2. Java中类与方法中变量作用域可以嵌套的
在Java中,类与方法之间作用域是可以嵌套的,可以把整个类看做一个大的作用域,它定义的字段(或称数据成员)可被方法中的同名字段所屏蔽。下面的例子说明了这个情况:
package Demo;
public class Demo01 {
public static void main(String args[]){
int x=1;
System.out.println("x=" + x);
}
static int x=2;
}