本文概述
- Java本地内部类示例
- Java Local内部类的规则
Java本地内部类示例
public class localInner1{
private int data=http://www.srcmini.com/30;
//instance variable
void display(){
class Local{
void msg(){System.out.println(data);
}
}
Local l=new Local();
l.msg();
}
public static void main(String args[]){
localInner1 obj=new localInner1();
obj.display();
}
}
立即测试
输出:
30
编译器生成的内部类
在这种情况下, 编译器将创建一个名为Simple $ 1Local的类, 该类具有外部类的引用。
import java.io.PrintStream;
class localInner1$Local
{
final localInner1 this$0;
localInner1$Local()
{
super();
this$0 = Simple.this;
}
void msg()
{
System.out.println(localInner1.access$000(localInner1.this));
}
}
规则:局部变量不能是私有的, 公共的或受保护的。Java Local内部类的规则1)本地内部类不能从方法外部调用。2)局部内部类在JDK 1.7之前不能访问非最终局部变量。从JDK 1.8开始, 可以在局部内部类中访问非最终局部变量。具有局部变量的局部内部类的示例
class localInner2{
private int data=http://www.srcmini.com/30;
//instance variable
void display(){
int value=50;
//local variable must be final till jdk 1.7 only
class Local{
void msg(){System.out.println(value);
}
}
Local l=new Local();
l.msg();
}
public static void main(String args[]){
localInner2 obj=new localInner2();
obj.display();
}
}
立即测试
【Java Local内部类】输出:
50
推荐阅读
- Java成员内部类
- 检查SSD健康状况的7个最佳免费工具/软件合集推荐
- 什么是Resmon、用途以及如何启动它(介绍和指南)
- 如何在Windows 10中禁用必应(详细分步指南)
- 什么是Setx.exe(命令、用途、位置信息介绍)
- 什么是VSSVC.exe(用途以及如何禁用它?)
- Wusa.exe是什么(用途、命令行信息介绍)
- 十大TinyLetter替代品和类似软件(营销软件合集推荐)
- 如何从Windows 10中删除Bloatware(分步指南)