Java中成员变量、局部变量、局部内部类、局部内部类方法作用域问题。

public class A {

    String s = "outer class member variable";    //成员变量
    
    public void Method() {                                //成员方法
        final String s1 = "inner class variable";       //局部变量
        class InnerClass {                              //局部内部类
            public void innerMethod() {                    //局部内部类方法
                int test = 20;
                System.out.println(s);
                System.out.println("Integer value is:"+test);
                System.out.println(s1);
            }
        }
        InnerClass b = new InnerClass();          //只能在局部内部类中进行实例化。
        b.innerMethod();               //且只能调用该类中的方法,外部方法不可以调用。
    }
    public static void main(String[] args) {
        A a = new A();
        a.Method();
    }
}

一、一个定义在 方法体中的内部类(局部内部类) InnerClass 只能访问 方法中 定义的被声明为 final 的局部变量。  成员变量则不用final修饰。

二、局部内部类只能在该类中实例化,也只能调用该类内部的方法。是无法在外部类中实例化和调用的。 

三、运行结果:

原文地址:https://www.cnblogs.com/huclouy/p/6610044.html