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修饰。
二、局部内部类只能在该类中实例化,也只能调用该类内部的方法。是无法在外部类中实例化和调用的。
三、运行结果: