内部类

  • 具体分为如下四种:
    • 静态内部类
    • 成员内部类
    • 局部内部类,当以在方法或者表达式内部
    • 匿名内部类,如new Thread{}.start();
      • 示例:
        public class OuterClass {
            /**
             * 成员内部类
             */
            private class InstanceInnerClass{}
        
            /**
             * 静态内部类
             */
            static class StaticInnerClass{}
        
            public static void main(String[] args){
                /**
                 * 匿名内部类
                 */
                new Thread(){
                    @Override
                    public void run() {
                        super.run();
                    }
                }.start();
                /**
                 * 两个方法内部类
                 */
                class MethodClass1{}
                class MethodClass2{}
            }
        
            /**
             * 无论是什么类型的内部类,都会编译成一个独立的.class文件
             * 外部类与内部类之间使用$符号分割,匿名内部类使用数字
             * 进行编号
             */
        }
        
  • 无论是什么类型的内部类,都会编译成一个独立的.class文件 外部类与内部类之间使用$符号分割,匿名内部类使用数字进行编号
  •  

  • 定义静态内部类的好处:
    • 作用域不会扩散到包外
    • 可以通过“外部类.内部类”的方式直接访问
    • 内部类可以访问外部类中的所有静态属性和方法

posted on 2019-02-14 11:42  endian11  阅读(84)  评论(0编辑  收藏  举报

导航