Java捡漏

Java成员变量和局部变量

2017-09-25  本文已影响9人  shenyoujian

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

上一篇 下一篇

猜你喜欢

热点阅读