之前给大家介绍了java静态内部类,下面的文章内容要给大家介绍的就是java局部内部类,主要包括了是什么以及特点等方面的知识。
局部内部类是指在一个方法中定义的内部类。
示例代码:
public class Test { public void method() { class Inner { // 局部内部类 } } }
局部内部类特点:
1、局部内部类和局部变量一样,不可以使用访问控制修饰符(public、private和protected)和 static修饰符修饰;
2、局部内部类只在当前方法当中有效;
public class Test { Inner i = new Inner(); // 编译出错 Test.Inner ti = new Test.Inner(); // 编译出错 Test.Inner ti2 = new Test() .new Inner(); // 编译出错 public void method() { class Inner {} Inner i = new Inner(); } }
3、局部内部类当中不可以定义static成员;
4、局部内部类当中还可以包含内部类,可是,这些内部类也不可以使用访问控制修饰符(public、private和protected)和static修饰符修饰;
5、在局部内部类当中,可以访问外部类的所有成员;
6、在局部内部类当中,只能够访问当前方法当中final类型的参数和变量。
假如,方法当中的成员和外部类当中的成员同名,那么就可以使用的形式访问外部类中的成员;
public class Test { int a = 0; int d = 0; public void method() { int b = 0; final int c = 0; final int d = 10; class Inner { int a2 = a; // 访问外部类中的成员 // int b2 = b; // 编译出错 int c2 = c; // 访问方法中的成员 int d2 = d; // 访问方法中的成员 int d3 = Test.this.d; //访问外部类中的成员 } Inner i = new Inner(); System.out.println(i.d2); // 输出10 System.out.println(i.d3); // 输出0 } public static void main(String[] args) { Test t = new Test(); t.method(); } }
以上就是对于java局部内部类的一个介绍了,你都清楚了吧。
请多多的关注奇Q工具网吧,有更多的java基础知识,可以为你分享哦。
推荐阅读: