java内部类
2013-03-13 00:00
309 查看
最近看到一个面试问题 内部类的实质是什么
看了别人给出的解释,上网查了相关资料,也自己动手测试一下。
首先根据内部类的定义结构不同(在类中的位置),可以内部类分为两种:成员式和局部式。
成员式内部类(包括静态内部类和成员内部类):成员变量和成员方法相比,三者定义的地方相似,此时的内部类就好比是类的一个成员。
局部式内部类(局部内部类和匿名内部类):定义在方法体中,仅数据局部范围所有。
2.成员内部类
3.局部内部类
定义在方法体内部,且有类名。
局部内部类也是个独立的类,不过它的一些使用受到了限制。比如不可以使用static关键字,只能使用final和abstract关键字,仅可以访问外部类带有final关键字的局部变量,但可以任意访问外部类的对象的成员
4.匿名内部类
工作原理相当于局部内部类,不过在定义和使用中没有出现class关键字(不过对象被创建),使用起来很灵活。
看了别人给出的解释,上网查了相关资料,也自己动手测试一下。
首先根据内部类的定义结构不同(在类中的位置),可以内部类分为两种:成员式和局部式。
成员式内部类(包括静态内部类和成员内部类):成员变量和成员方法相比,三者定义的地方相似,此时的内部类就好比是类的一个成员。
局部式内部类(局部内部类和匿名内部类):定义在方法体中,仅数据局部范围所有。
1.静态内部类
2.成员内部类
3.局部内部类
定义在方法体内部,且有类名。
局部内部类也是个独立的类,不过它的一些使用受到了限制。比如不可以使用static关键字,只能使用final和abstract关键字,仅可以访问外部类带有final关键字的局部变量,但可以任意访问外部类的对象的成员
4.匿名内部类
工作原理相当于局部内部类,不过在定义和使用中没有出现class关键字(不过对象被创建),使用起来很灵活。