Java中,局部内部类

简介: 局部内部类   A:局部内部类可以直接访问外部类的成员。   B:局部内部类在局部位置可以创建内部类对象,通过内部类对象调用内部类方法,来使用局部内部类功能。   C:局部内部类访问局部变量,局部变量必须加final修饰。

局部内部类
  A:局部内部类可以直接访问外部类的成员。
  B:局部内部类在局部位置可以创建内部类对象,通过内部类对象调用内部类方法,来使用局部内部类功能。
  C:局部内部类访问局部变量,局部变量必须加final修饰。为什么呢?
    因为局部变量会随着方法的调用完毕而消失,这个时候,局部对象并没有立马从堆内存中消失,
    局部对象还要使用这个局部变量。为了让数据还能继续被使用,就用fianl修饰局部变量,
    这样,在堆内存里面存储的其实是一个常量值。通过反编译工具可以看一下。
    通过反编译工具我们看到了,加入final后,堆内存直接存储的是值而不是局部变量名。

示例代码如图所示:

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
8月前
|
Java 测试技术 API
Java RESTful中的PATCH请求:局部更新与资源修改
在RESTful架构中,PATCH请求是一种用于局部更新已有资源的操作。PATCH请求允许客户端将部分数据发送到服务器,以便对资源进行局部修改,而不必替换整个资源。本文将引导您深入了解Java中使用PATCH请求构建RESTful API,探讨其特点、实现方式、用例以及在实际应用中的优势。
|
4月前
|
Java
【Java基础】类名、抽象类、接口名的参数传递及成员内部类、局部内部类和匿名内部类的使用
【Java基础】类名、抽象类、接口名的参数传递及成员内部类、局部内部类和匿名内部类的使用
40 0
|
5月前
|
存储 Java
Java内部类 - 局部/匿名/成员/静态内部类
Java内部类 - 局部/匿名/成员/静态内部类
62 0
|
8月前
|
Java
Java 内部类(成员、局部、匿名)
Java 内部类(成员、局部、匿名)
29 0
|
10月前
|
算法 Java
数学建模常用算法:迭代局部搜索算法求解tsp问题+att48算例测试【java实现--详细注释】
数学建模常用算法:迭代局部搜索算法求解tsp问题+att48算例测试【java实现--详细注释】
108 0
|
Java
java中的四种内部类详解(成员类内部类,静态内部类,局部内部类,匿名内部类)
java中的四种内部类详解(成员类内部类,静态内部类,局部内部类,匿名内部类)
109 0
|
Java
java学习第八天笔记-方法163-成员和局部
java学习第八天笔记-方法163-成员和局部
47 0
java学习第八天笔记-方法163-成员和局部
|
Java 编译器
第19篇:Java 中的 final 关键字、嵌套类、内部类、静态嵌套类、局部类
📝 有效 final:虽然没有被final修饰,但只进行了一次赋值(若被赋值了不止一次,则不是有效 final) 📝 从 Java8 开始,如果局部变量没有被第二次赋值,则该局部变量会被认定为是【有效 final】
114 0
第19篇:Java 中的 final 关键字、嵌套类、内部类、静态嵌套类、局部类
java内部类——局部内部类
java内部类——局部内部类
|
Java 数据安全/隐私保护
Java局部内部类访问所在方法的变量或参数
局部内部类是在方法中定义的类。它的可见范围是当前方法,和局部变量一样,局部内部类不能用访问控制修饰符(public、private以及protected)和静态修饰符static来修饰。局部内部类中除了可以访问外部类的所有成员,还可以访问所在方法的最终变量或参数(被final修饰的变量或参数),从JDK8.0开始,还可以访问所在方法的实际上的最终变量或参数(没有被final修饰但只进行了一次赋值的变量或参数)。为什么局部内部类中只能访问所在方法的最终变量或参数以及实际上的最终变量或参数呢?