目 录CONTENT

文章目录

内部类

在水一方
2022-02-21 / 0 评论 / 0 点赞 / 709 阅读 / 382 字 / 正在检测是否收录...

很多的源码中大量用到了内部类,对于这部分基础来做个回顾

分类

  • 静态内部类
    如:static class InnerClass{}
  • 成员内部类
    如:private class InstaceClass{}
  • 局部内部类:定义在方法或表达式内部
  • 匿名内部类
    (new Thread(){}).start()

无论什么类型的内部类,都会编译成一个独立的.class文件,外部类和内部类之间用$间隔,其中匿名内部类使用数字进行编号
匿名内部类和静态内部类是比较常用的方式,在jdk中,使用内部类封装某种属性和操作的方式比较常见,内部类中还可以嵌套内部类
例如:ThreadLocalMap中又定义了Entry类

16454146241.png

好处

在JDK源码中,在包内定义可见静态内部类的方式很常见,这样做的好处是:

  • 作用域不会扩散到包外
  • 可以通过" 外部类.内部类"的方式直接访问
  • 内部类可以访问外部列中所有的静态属性和方法
0

评论区