1.JAVA中作用范圍是禁止嵌套的
在Java中,在方法(函數(shù))內(nèi)定義的變量,其作用范圍(包括方法的參數(shù))是從它定義的地方開(kāi)始,到它所作用范圍終結(jié)的位置結(jié)束。也就是說(shuō)如果你在方法開(kāi)始的時(shí)候就定義了一個(gè)變量x,那么直到這個(gè)方法結(jié)束就不能再定義另一個(gè)同名的變量x。如下所示就是一個(gè)錯(cuò)誤的定義:
public static void fun(){
int x=1;
{
int x=2;//編譯錯(cuò)誤:和{}外的變量x的作用域重疊
System.out.println("x=" + x);
}
}
2. Java中類(lèi)與方法中變量作用域可以嵌套的
在Java中,類(lèi)與方法之間作用域是可以嵌套的,可以把整個(gè)類(lèi)看做一個(gè)大的作用域,它定義的字段(或稱(chēng)數(shù)據(jù)成員)可被方法中的同名字段所屏蔽。下面的例子說(shuō)明了這個(gè)情況:
package Demo;
public class Demo01 {
public static void main(String args[]){
int x=1;
System.out.println("x=" + x);
}
static int x=2;
}