方法中的内部类能不能访问方法中的局部变量,为什么

来源:互联网 发布:广州市梦享网络 编辑:程序博客网 时间:2024/06/06 07:07
 * 能, *  * 内部类是在类中的类,它的位置相对于这个类来说同其他的方法和属性一样。 * 既可以在方法位置上也可以在方法中。 * 方法中的内部类就是所谓的局部内部类。 *  * 方法被调用时,它里面的局部变量“诞生”,方法结束时,局部变量“死亡”; * 局部内部类的对象只有在不被引用的时候才“死亡”。 * 非常可能的是局部内部类对象的生命周期比局部变量的声明周期要长, * 那么局部内部类对象没法调用已经“死亡”了的局部变量。 *  * 解决的方法是局部变量加上final, * 编译成灰会把局部内部类要调用的final变量变成该局部内部类的一个成员, * 放入堆中。 * 局部变量生命周期同这个工程的声明周期相同, * 这时候局部内部类就可以调用这个生命周期比自己大的局部变量了。


 

原创粉丝点击