java(try块语句变量,和匿名类变量生存时间

在try块定义的变量不能作用于快外

//        int a=2;
        try{
            int a=3;
            System.out.println(a);
        }
        catch(Exception e){}
        System.out.println(a);//出错

try块前定义的变量,可以在try里面使用

        int a=2;
        try{
//            int a=3;
            System.out.println(a);//2
        }
        catch(Exception e){}
        System.out.println(a);//2

如果是成员变量,也可以在try里面使用

    int a=2;//作成员变量
    void show(){
//        int a=2;
        try{
            a=3;
            System.out.println(a);
        }

try块内改变变量的值,在块外也有体现

        int a=2;
        try{
            a=3;
            System.out.println(a);//3
        }
        catch(Exception e){}
        System.out.println(a);//3
    int a;//匿名类能使用
    void show(){
//        int a;匿名类不能使用
        B b=new B(){
            void show(){
                a=3;
                System.out.println(a);
                System.out.println("dd");
            }
        };
        b.show();
    }
}

class B{
    void show(){}
}
原文地址:https://www.cnblogs.com/vhyc/p/6045085.html