内部类

本文详细介绍了Java内部类的概念、优势及其应用场景,并通过实例代码展示了内部类如何访问外部类的成员变量,以及如何从外部引用内部类。同时,还探讨了在方法中定义内部类时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内部类

好处:

  • 可以方便的访问包装类的成员
  • 可以更清楚的组织逻辑,防止不应该被其他类访问的类进行访问

何时使用:

  • 该类不允许或不需要其他类访问的时候


  ——在类中直接定义的内部类

如果函数的局部变量(函数的形参也是局部变量),内部类的成员变量,外部类的成员变量重名,我们应该按下面的程序代码所使用的方式来明确指定我们真正要访问的变量。

public class Outer{

  private int size;

  public class Inner{

      private int size;

      public void doStuff(int size){

           size++;//引用的是doStuff函数的形参

           this.size++;//引用的是Inner类中的成员变量

           Outer.this.size++;//引用的Outer类中的成员变量           

      }

   }

}

内部类如何被外部引用

  ClassOuter{

  Privateint size = 10;

  Publicclass Inner{

    Public void doStuff(){

   System.out.println(++size);

}

}

}

   Publicclass TestInner{

    Public static voidmain(String[] args){

    Outer outer = new Outer();

    Outer.Inner inner  =outer.new Inner();

    Inner.doStuff();

}

}

------在方法中定义内部类

嵌套类并非只能在类里定义,也可以在几个程序块的范围内定义内部类。例如,在方法中,或者在for循环体内,都可以定义嵌套类部类。

在方法中定义的内部类只能访问方法中的final类型的局部变量,用final定义的局部变量相当于是一个常量,它的生命周期超过方法运行的生命周期。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值