晚上回看了老师昨天讲的视频,讲到局部内部类访问局部变量的时候,局部变量是需要使用final修饰,老师解释这个问题的时候,内含局部内部类的外部方法(test())执行完毕,具备内部类创建的对象(inner)并没有消失。我想问这个内部类创建的对象的生命周期是什么时候才结束?(具体代码如下)
/*局部类要注意的细节:
局部内部类访问局部变量的时候,局部 变量是需要使用final修饰的。
*/
//外部类
class Outer{
public void test(){
//局部变量
final int y = 100;
/* y的生命周期:test方法执行完毕之后马上从内存消失。
局部内部类访问 局部变量的时候,局部变量是需要使用final修饰,为什么?
*/
//局部内部类
class Inner{
//成员变量
int x = 10;
//成员函数
public void print(){
System.out.println("这个是局部内部类的print方法..."+y);
}
}
//创建局部内部类对象
Inner inner = new Inner(); // Inner对象生命周期: 反正Inner的对象当test执行完毕之后还不会马上消失。
// Inner对象的生命周期是比y要长的。
inner.print();
}
}
class Demo12
{
public static void main(String[] args)
{
Outer outer = new Outer();
outer.test();
}
}
|
|