成员内部类,局部内部类,匿名内部类与Static,final 更新2
- UID
- 1066743
|
成员内部类,局部内部类,匿名内部类与Static,final 更新2
匿名内部类反编译
public class InnerClassDemo
{
public InnerClassDemo()
{
}
public static void main(String args[])
{
InnerClassDemo innerClassDemo = new InnerClassDemo();
innerClassDemo.show();
}
public void show()
{
final int i = 10;
(new TestDemo1() {
final int val$i;
final InnerClassDemo this$0;
public void showInner()
{
System.out.println(i);
}
{
this.this$0 = InnerClassDemo.this;
i = j;
super();
}
}).showInner();
}
}
局部内部类访问成员变量不需要加final修饰,为啥访问局部变量需要加final修饰?
因为局部变量的生命周期是随着方法的调用是消失,而局部内部类可以理解为对象
它的生命周期要长于局部变量的,这个时候就需要加final变为常量或者地址值不可变 |
|
|
|
|
|