1. 内部类的分类

内部类就是在一个类中又定义一个类。

  • 静态内部类:static修饰的内部类。
  • 普通内部类:不用static修饰的内部类。
  • 局部内部类:在类中方法内定义的内部类。

2.内部类的基本语法

java static修饰类 遇到内存飙高_外部类

3.内部类的特点

  • 内部类可以访问其所在类的属性(包括私有属性),内部类创建自身对象需要先创建其所在类的对象。
  • java static修饰类 遇到内存飙高_局部内部类_02

  • 普通内部类里面不能定义static属性和方法
  • java static修饰类 遇到内存飙高_java_03

  • 原因:普通内部类的存在依赖于外部类的对象,static随着类的加载而加载,产生了冲突。
  • 静态内部类可以定义static

static内部类是内部类中一个比较特殊的情况,Java文档中是这样描述static内部类的:一旦内部类使用static修饰,那么此时这个内部类就升级为顶级类。也就是说,除了写在一个类的内部以外,static内部类具备所有外部类的特性。

通过这个例子我们发现,static内部类不仅可以在内部定义static元素,而且在构建对象的时候也可以一次完成。从某种意义上说,static内部类已经不算是严格意义上的内部类了。

  • 局部内部类
    局部内部类目前没有找到很好的例子去理解学习,后续工作中遇到了会回来补习的。原谅我现在很菜!见识少。

4.内部类的使用案例

这几天阅读源码发现tl在定义一些常量配置的的发现了内部类的使用,故大概学习了一下。

java static修饰类 遇到内存飙高_内部类_04