java内部类

    最近看到一个面试问题   内部类的实质是什么

    看了别人给出的解释,上网查了相关资料,也自己动手测试一下。

    首先根据内部类的定义结构不同(在类中的位置),可以内部类分为两种:成员式局部式

    成员式内部类(包括静态内部类和成员内部类):成员变量和成员方法相比,三者定义的地方相似,此时的内部类就好比是类的一个成员。

    局部式内部类(局部内部类和匿名内部类):定义在方法体中,仅数据局部范围所有。

 

   1.静态内部类 

     java内部类_第1张图片

2.成员内部类

   

java内部类_第2张图片

3.局部内部类

定义在方法体内部,且有类名。

局部内部类也是个独立的类,不过它的一些使用受到了限制。比如不可以使用static关键字,只能使用final和abstract关键字,仅可以访问外部类带有final关键字的局部变量但可以任意访问外部类的对象的成员

java内部类_第3张图片

4.匿名内部类

工作原理相当于局部内部类,不过在定义和使用中没有出现class关键字(不过对象被创建),使用起来很灵活。

你可能感兴趣的:(java内部类)