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

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

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

非 静态成员内部类

    public class InnerClassDemo {
        public static void main(String[] args) {
            InnerClassDemo innerClassDemo = new InnerClassDemo();
        }
         class TestDemo {
        }
    }

非 静态成员内部类反编译class

    public class InnerClassDemo
    {
        class TestDemo
        {
            final InnerClassDemo this$0;
     
            TestDemo()
            {
                this.this$0 = InnerClassDemo.this;
                super();
            }
        }
        public InnerClassDemo()
        {
        }
        public static void main(String args[])
        {
            InnerClassDemo innerClassDemo = new InnerClassDemo();
        }
    }

静态内部类

    public class InnerClassDemo {
        public static void main(String[] args) {
            InnerClassDemo innerClassDemo = new InnerClassDemo();
        }
     
        static class TestDemo {
        }
    }

静态内部类反编译class

    public class InnerClassDemo
    {
        static class TestDemo
        {
            TestDemo()
            {
            }
        }
     
        public InnerClassDemo()
        {
        }
     
        public static void main(String args[])
        {
            InnerClassDemo innerClassDemo = new InnerClassDemo();
        }
    }

对比看的很清楚,编译器自动帮我们添加了无参的构造方法
非静态的成员内部类持有了外部类的引用
应该知道,静态方法是不能用this关键字的
其实可以这么理解,静态的是类级别的,所以不能用this
内部类加static有什么区别,有什么好处?
返回列表