美文网首页Java捡漏
Java成员变量和局部变量

Java成员变量和局部变量

作者: shenyoujian | 来源:发表于2017-09-25 19:48 被阅读9次

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

    相关文章

      网友评论

        本文标题:Java成员变量和局部变量

        本文链接:https://www.haomeiwen.com/subject/xvpdextx.html