Java的局部内部类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/91352403

一 点睛

如果把一个内部类放在方法中定义,那么这个内部类就是一个局部内部类,局部内部类仅在方法里有效。

由于局部内部类不能在外部类的方法以外的地方使用,因此局部内部类也不能使用控制符合static修饰符修饰。

如果需要用局部内部类定义变量、创建实例或派生子类,那么都只能在局部内部类所在的方法中进行。

二 代码

public class LocalInnerClass
{
   public static void main(String[] args)
   {
      // 定义局部内部类
      class InnerBase
      {
         int a;
      }
      // 定义局部内部类的子类
      class InnerSub extends InnerBase
      {
         int b;
      }
      // 创建局部内部类的对象
      InnerSub is = new InnerSub();
      is.a = 5;
      is.b = 8;
      System.out.println("InnerSub对象的a和b实例变量是:"
         + is.a + "," + is.b);
   }
}

三 运行

InnerSub对象的a和b实例变量是:5,8

四 说明

编译完成后,会生成LocalInnerClass.class、LocalInnerClass$1InnerBase.class和LocalInnerClass$1InnerSub.class三个文件,之所以局部内部类有数字是因为同一个类里可能有两个以上的同名的局部内部内(处于不同的方法中)。

局部内部内作用域太小,不利于多次复用,因此在开发中很少使用局部内部类。

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/91352403