java中,局部内部类也称为方法内部类,指定义在某个局部范围中的类,它和局部变量都是在方法中定义的,有效范围只限于方法内部。局部内部类可以访问外部类的所有成员和成员方法,在外部类中无法访问局部内部类的变量和方法。
如果外部类要访问内部类的成员,只能在局部内部类的所属方法中创建局部内部类的对象,通过对象访问局部内部类的变量和方法。
示例代码如下
class Waibu{
int m=0;
void test1() {
System.out.println("外部类成员方法test1()");
}
void test2() {
class Neibu{
int n=1;
void show() {
System.out.println("外部类成员变量m="+m);
test1();
}
}
Neibu inner=new Neibu();
System.out.println("局部内部类变量n="+inner.n);
inner.show();
}
}
public class Jubuneibulei {
public static void main(String[] args) {
// 局部内部类
Waibu outer=new Waibu();
outer.test2();
}
}
在这段代码中,首先创建了外部类Waibu,在方法test2中,定义了一个局部内部类
class Neibu{
int n=1;
void show() {
System.out.println("外部类成员变量m="+m);
test1();
}
}
通过在类中创建内部类的对象访问局部内部类的变量和方法
Neibu inner=new Neibu();
System.out.println("局部内部类变量n="+inner.n);
inner.show();