加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

Java局部内部类

发布时间:2022-10-31 13:04:16 所属栏目:语言 来源:
导读:  局部内部类是指在一个方法中定义的内部类。示例代码如下:
  public class Test {
   public void method() {
   class Inner {
   // 局部内部类
   }
   }
  局部内部类是指在一个方法中定义的内部类。示例代码如下:
  public class Test {
      public void method() {
          class Inner {
              // 局部内部类
          }
      }
  }
  局部内部类有如下特点:
 
  1)局部内部类与局部变量一样,不能使用访问控制修饰符(public、private 和 protected)和 static 修饰符修饰。
 
  2)局部内部类只在当前方法中有效。
  public class Test {
      Inner i = new Inner();    // 编译出错
      Test.Inner ti = new Test.Inner();    // 编译出错
      Test.Inner ti2 = new Test().new Inner();    // 编译出错
      public void method() {
          class Inner{
          
          }
          Inner i = new Inner();
      }
  }
 
  3)局部内部类中不能定义 static 成员。
 
  4)局部内部类中还可以包含内部类,但是这些内部类也不能使用访问控制修饰符(public、private 和 protected)和 static 修饰符修饰。
 
  5)在局部内部类中可以访问外部类的所有成员。
 
  6)在局部内部类中只可以访问当前方法中 final 类型的参数与变量。如果方法中的成员与外部类中的成员同名,则可以使用 <OuterClassName>.this.<MemberName> 的形式访问外部类中的成员。
  纯文本复制
  public class Test {
      int a = 0;
      int d = 0;
      public void method() {
          int b = 0;
          final int c = 0;
          final int d = 10;
          class Inner {
              int a2 = a;    // 访问外部类中的成员
              // int b2 = b;    // 编译出错
              int c2 = c;    // 访问方法中的成员
              int d2 = d;    // 访问方法中的成员
              int d3 = Test.this.d;    //访问外部类中的成员
          }
          Inner i = new Inner();
          System.out.println(i.d2);    // 输出10
          System.out.println(i.d3);    // 输出0
      }
      public static void main(String[] args) {
          Test t = new Test();
          t.method();
      }
  }
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!