首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

成员内部类,局部内部类,匿名内部类与Static,final 更新2

成员内部类,局部内部类,匿名内部类与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变为常量或者地址值不可变
返回列表