首页 理论教育 局部内部类

局部内部类

时间:2022-02-28 理论教育 版权反馈
【摘要】:和局部变量一样,局部内部类不能用访问控制符及static修饰符来修饰。局部内部类Inner不能包含静态变量staVar、静态内部类static class Inner2{...}。局部内部类Inner可访问外部类Outer4的变量outVar,访问所在方法createInner()的final类型变量finalLocalVar。createInner()方法返回一个新建内部类Inner对象的引用值,通过引用值访问Inner对象的toString()方法。

4.8.2 局部内部类

当内部类被定义在一个类的方法中或代码块中时,称之为局部内部类。它的可见范围是当前方法或当前代码块。和局部变量一样,局部内部类不能用访问控制符(public、private和protected)及static修饰符来修饰。并且只能在当前方法或当前代码块中引用。

方法体中不命名地定义内部类,这样的内部类称为匿名内部类。这部分内容涉及继承,在学习完继承后再讲述。

【例4-31】 局部内部类的定义与使用。

img257

img258

程序运行结果如下:

img259

分析与思考:(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()方法来创建内部类对象。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈