欢迎来IT培训班!

咨询热线 18940085928

IT培训网 > 知识学习 > JAVA开发 >

Java局部内部类

授课机构:IT培训班

地址:北京

网报价格:详询

课程原价:

咨询热线:18940085928

课程详情 相关推荐 学校地址 网上报名

局部内部类是指在一个方法中定义的内部类。示例代码如下:

		
  1. public class Test {
  2. public void method() {
  3. class Inner {
  4. // 局部内部类
  5. }
  6. }
  7. }
局部内部类有如下特点: 1)局部内部类与局部变量一样,不能使用访问控制修饰符(public、private 和 protected)和 static 修饰符修饰。 2)局部内部类只在当前方法中有效。

		
  1. public class Test {
  2. Inner i = new Inner(); // 编译出错
  3. Test.Inner ti = new Test.Inner(); // 编译出错
  4. Test.Inner ti2 = new Test().new Inner(); // 编译出错
  5. public void method() {
  6. class Inner{
  7.  
  8. }
  9. Inner i = new Inner();
  10. }
  11. }
3)局部内部类中不能定义 static 成员。 4)局部内部类中还可以包含内部类,但是这些内部类也不能使用访问控制修饰符(public、private 和 protected)和 static 修饰符修饰。 5)在局部内部类中可以访问外部类的所有成员。 6)在局部内部类中只可以访问当前方法中 final 类型的参数与变量。如果方法中的成员与外部类中的成员同名,则可以使用 <OuterClassName>.this.<MemberName> 的形式访问外部类中的成员。
纯文本复制

		
  1. public class Test {
  2. int a = 0;
  3. int d = 0;
  4. public void method() {
  5. int b = 0;
  6. final int c = 0;
  7. final int d = 10;
  8. class Inner {
  9. int a2 = a; // 访问外部类中的成员
  10. // int b2 = b; // 编译出错
  11. int c2 = c; // 访问方法中的成员
  12. int d2 = d; // 访问方法中的成员
  13. int d3 = Test.this.d; //访问外部类中的成员
  14. }
  15. Inner i = new Inner();
  16. System.out.println(i.d2); // 输出10
  17. System.out.println(i.d3); // 输出0
  18. }
  19. public static void main(String[] args) {
  20. Test t = new Test();
  21. t.method();
  22. }
  23. }

  • 学校名称:IT培训网

    固定电话:18940085928

    授课地址:线下 预约名额

报名信息