1、成員變量可以顯式初始化也可以不初始化(隱式),局部變量就必須得顯式初始化,成員變量的修改必須在方法中進行。如
public class ScopeTest {
int i; //不初始化
int j=30;//顯式初始化
i=30;//報錯
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public class UnicodeTest {
static int i;
public static void main(String[] args) {
// TODO Auto-generated method stub
i=30;
}
2、
局部變量的名字和成員變量的名字一樣,則成員變量會被隱藏,成員變量在這個方法中將會失效。如:
public class UnicodeTest {
static int i=1;
public static void main(String[] args) {
// TODO Auto-generated method stub
int i=2;
System.out.println(i);
}
}
output:
2
3、在聲明局部變量的時候,不得使用static,public,private等修飾詞去修飾方法內的變量,只能用final或者不加修飾,public,private是聲明作用域的,在方法內聲明是無意義的,但是在方法外面就可以。如:
結合123做的整合
public class ScopeTest {
public static String s;
s="1";
public static void main(String[] args) {
public String s;
final String s2;
s2="1";
System.out.println(s);
System.out.println(s2);
}
}
output:
1、public static String s;//報錯,Syntax error on token ";", { expected after this token,因為全局變量的修改只能在方法中進行。
2、public String s;//報錯,Illegal modifier for parameter s; only final is permitted,因為在聲明局部變量的時候不得使用static或者public等修飾詞
3、System.out.println(s);//報錯,The local variable s may not have been initialized,因為局部變量和全局變量名字一樣的時候,全劇變量會被隱藏,而且局部變量必須得初始化。