内部类

Posted hebiao

tags:

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

指的是在Java中可以将一个类定义在另一个类内部。

内部类可以定义在

1.类的成员位置,成员内部类

  作为成员,与属性,方法在一个层次

       跟正常类一样,可以使用权限修饰符,特征修饰符修饰,public ,private ,final ,static这些。

好处:1.省了一个源文件 2.可以直接访问外部类的成员

用法:通过外部类对象创建内部类对象,然后跟正常方法一样调用就行了。

注意:如果属性重名,想通过对象.方式调用,内部类中this.name,外部类对象.this.name

编译后会产生一个内部类字节码文件

2.局部内部类

  定义在块、方法里面,作为成员的内部结构,跟局部变量一个层次

注意:1.不能使用权限修饰符特征修饰符修饰,默认的就行。

  2.只能用abstract或final

  3.局部内部类里面定义变量只能是final的

3.匿名内部类,只有类主体body部分没有结构(修饰符,名字,继承,实现这些),么有构造方法

  成员匿名内部类

正常的
public interface Test{ public void test(); } public class Person implements Test{ public void test(){ .... } } //使用匿名内部类后 public interface Test{ public void test(); } Test t=new Test(){ public void test(){ .... } }

 

  局部匿名内部类

4.静态内部类

  成员静态内部类,不需要外部内对象,可以正常访问。

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

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

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

ForegroundService没有从片段开始?

在内部片段类中使用ListView

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

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