4.8.2 局部内部类
当内部类被定义在一个类的方法中或代码块中时,称之为局部内部类。它的可见范围是当前方法或当前代码块。和局部变量一样,局部内部类不能用访问控制符(public、private和protected)及static修饰符来修饰。并且只能在当前方法或当前代码块中引用。
方法体中不命名地定义内部类,这样的内部类称为匿名内部类。这部分内容涉及继承,在学习完继承后再讲述。
【例4-31】 局部内部类的定义与使用。
程序运行结果如下:
分析与思考:(1)局部内部类和实例内部类一样,不能包含静态成员。局部内部类Inner不能包含静态变量staVar、静态内部类static class Inner2{...}。
(2)局部内部类和实例内部类一样,可以访问外部类的所有成员,可以访问所在方法中的final类型的参数和变量。局部内部类Inner可访问外部类Outer4的变量outVar,访问所在方法createInner()的final类型变量finalLocalVar。不能访问所在方法createInner()的局部变量localVar。
(3)createInner()方法返回一个新建内部类Inner对象的引用值,通过引用值访问Inner对象的toString()方法。
模仿例4-31:改写例4-28,在Outer1类中编写createInner()方法,使其返回一个新建实例内部类对象的引用值,并在Ex4_28类中,通过Outer1对象引用createInner()方法来创建内部类对象。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。