内部类

Posted kikochz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内部类相关的知识,希望对你有一定的参考价值。

内部类

#内部类

内部类

? |-- 非静态内部类 (成员内部类)

? |-- 静态内部类 (类内部类)

? |-- 局部内部类

? |-- 匿名内部类

#非静态内部类

  • 相当于Outer的成员变量, 可以访问实例变量,实例方法, 但是不能访问类变量

  • 通过new Outer().new Inner()来调用

  • 如果外部类和内部类具有相同的成员变量或方法, 访问外部类的成员变量或方法时, 需要使用this关键字

#静态内部类

  • static修饰的内部类, 称为静态内部类, 完全属于外部类本, 不属于外部类某一对象
  • 静态内部类可以包括静态成员, 也可以包含非静态成员, 但是在非静态内部类中不可以声明静态成员
  • 静态内部类不可以访问外部类的实例成员, 只能访问类成员, 因为是完全独立的两个类
  • 内部类被当成外部类成员, 但外部类不能访问内部类的实现细节
  • 通过new Inner.Outer()来调用

#局部内部类

  • 局部内部类就是定义在外部类的方法中, 方法内部类只在该方法内可以用
  • 方法内部类不能使用访问控制符和static修饰符, 只能访问final修饰符

以上是关于内部类的主要内容,如果未能解决你的问题,请参考以下文章

片段 - 全局视图变量与本地和内部类侦听器和内存泄漏

为啥片段类应该是公开的?

ForegroundService没有从片段开始?

在内部片段类中使用ListView

自定义无内存泄漏的Handler内部类

底部导航 如何从片段内部更改片段