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,因为局部变量和全局变量名字一样的时候,全剧变量会被隐藏,而且局部变量必须得初始化。
网友评论