Loading

【JAVA基础补完计划001】类 静态类

固有印象:静态内部类不可以被实例化 是错的!

 

看AQS Abstract Queen Synchronization 时发现其静态内部类Node,对自己进行实例化。遂查询资料并动手实践,发现静态类是可以被实例化的,但是一般情况下没必要。new一个静态内部类对象,获得对其引用,不用先堆外部类进行实例化。

  JAVA的静态内部类特性

 

  1.根据内部类在外部类中的位置可以分为4种:

  • 局部内部类,定义在外部类中的局部范围(方法和代码块中)
  • 匿名内部类(学习的重点和难点)也通常定义在局部
  • 成员内部类(定义在外部类的成员位置)
  • 静态内部类(用stataic修饰的内部类)
  1. 内部静态类是要在有引用了以后才会装载到内存的,详情见JAVA类加载机制
  2. 被静态修饰符static修饰的内部类,就是静态内部类
    1. 静态内部类中可以声明静态变量,非静态内部类中不可以。
    2. 静态内部类不可以使用外部类的非静态成员变量。
    3. 创建静态内部类对象,不需要其外部类对象引用。
posted @ 2022-07-29 09:26  ArkiWang  阅读(31)  评论(0编辑  收藏  举报