局部内部类
局部内部类,也叫做方法内部类,就是定义在某个局部范围中的类,它和局部变量一样,都是在方法中定义的,其有效范围只限于方法内部。
在局部内部类中,局部内部类可以访问外部类的所有成员变量和方法,而局部内部类中的变量和方法却只能在创建该局部内部类的方法中进行访问。接下来通过一个案例来学习局部内部类的定义和使用,如文件1所示。
文件1 Example19.java
1 // 定义外部类Outer
2 class Outer {
3 int m = 0;
4 void test1(){
5 System.out.println("外部类成员方法");
6 }
7 void test2() {
8 // 1、定义局部内部类Inner,在局部内部类中访问外部类变量和方法
9 class Inner {
10 int n = 1;
11 void show() {
12 System.out.println("外部类变量m="+m);
13 test1();
14 }
15 }
16 // 2、在创建局部内部类的方法中,调用局部内部类变量和方法
17 Inner inner = new Inner();
18 System.out.println("局部内部类变量n="+inner.n);
19 inner.show();
20 }
21 }
22 // 定义测试类
23 public class Example19 {
24 public static void main(String[] args) {
25 Outer outer= new Outer();
26 outer.test2(); // 通过外部类对象调用创建了局部内部类的方法
27 }
28 }
运行结果如图1所示。
图1 运行结果
文件1中,定义了一个外部类Outer,并在该内中定义了成员变量、成员方法,接着在外部类的成员方法test2()中定义了一个局部内部类Inner;然后在局部内部类Inner中,编写了show()方法来测试对外部类变量和方法的调用;同时在创建该局部内部类的test2()方法中创建了局部内部类对象来测试对局部内部类变量和方法的调用。
从图1可以看出,局部内部类可以访问外部类所有成员,而只有在包含局部内部类的方法中才可以访问内部类的所有成员。