【Java】局部内部类

如果一个类是定义在一个方法内部的,那么这就是一个局部内部类

“局部”:只有当前所属的方法才能使用它,出了这个方法外面就不能使用了

 

定义格式:

修饰符 class 外部类名称{

 

修饰符 返回值类型 外部类方法名称(参数列表){

           class 局部内部类名称(参数列表){

                 //...

             }

}

 

}

【Java】局部内部类_第1张图片

权限修饰符小结:

 

定义一个类的时候,权限修饰符规则:

1.外部类  public/(default)

2.成员内部类 public/protected/(default)/private

3.局部内部类 什么都不能写

 

局部内部类的final问题

局部内部类,如果希望访问所在方法的局部变量,那么这个局部变量必须是【有效final】的

从java8开始,只要局部变量事实不变,那么final关键字可以省略

 

原因:

1.new出来的对象在堆内存当中

2.局部变量是跟着方法走的,在栈内存当中

3.方法运行结束之后,立刻出栈,局部变量就会立刻消失

4.但是new出来的对象会在堆当中持续存在,直到垃圾回收消失

你可能感兴趣的:(Java)