内部类

Posted

tags:

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

内部类

把一个类放在另一个类的内部定义,这个定义在其他类内部的类就被称为内部类。包含内部类的类被称为外部类。

 

内部类的作用

  • 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。
  • 内部类成员可以直接访问外部类的私有数据。因为内部类被当做其外部类的成员,同一个类的成员之间可以相互访问。但外部类不能访问内部类的实现细节,例如内部类的成员变量。
  • 匿名内部类适用于创建那些仅需要一次使用的类。

 

注意:内部类比外部类可以多使用三个修饰符:private、protected、static,外部类不可以使用这三个修饰符

非静态内部类不能拥有静态成员。

 

静态内部类

用static修饰的内部类叫做静态内部类

  • 静态内部类属于外部类本身,而不属于外部类的某个对象
  • 静态内部类不能访问外部类的实例成员,只能访问外部类的类成员

 

匿名内部类

 

定义格式

new 实现接口() | 父类构造器(实参列表)
{
    //匿名内部类的类体部分  
}

匿名内部类不能是抽象类。

匿名内部类不能定义构造器。

 

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

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

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

ForegroundService没有从片段开始?

在内部片段类中使用ListView

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

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