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

Posted 海阔天空。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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修饰。

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

三、运行结果:

 

以上是关于Java中成员变量局部变量局部内部类局部内部类方法作用域问题。的主要内容,如果未能解决你的问题,请参考以下文章

java内部类之成员内部类之局部内部类

java9-8 局部内部类

Java面向对象(OOP)--内部类(局部内部类)

局部内部类的成员变量被final修饰才能被局部内部类的方法所访问

JAVA局部内部类

Java 局部内部类访问局部变量为什么必须加final关键字