1.
/*
局部内部类
A. 可以直接访问外部类成员
B.在局部位置,可以创建内部类对象,通过对象调用内部类方法,来使用内部类功能
局部内部类访问局部变量?
注意:局部内部类访问的局部变量必须用final修饰
因为,局部变量会随着方法的调用而调用,随着调用完毕而消失
而堆内存的内容并不会立即消失。所以要用final修饰。
而加了final修饰,这个变量就成了常量。变量消失了,但在内存中存储的数据是20,我还是有数据在使用的
*/
class Outer{
private int num=10;
public void method(){
final int num2 = 20;
class Inter{
public void show(){
//A. 可以直接访问外部类成员
System.out.println(num);
//局部内部类访问的局部变量必须用final修饰
System.out.println(num2);
}
}
//B.在局部位置,可以创建内部类对象,通过对象调用内部类方法,来使用内部类功能
Inter i = new Inter();
i.show();
}
}
class InterClassDemo4{
public static void main(String[] args){
Outer o= new Outer();
o.method();
}
}
2.局部内部类访问局部变量?
注意:局部内部类访问的局部变量必须用final修饰
因为,局部变量会随着方法的调用而调用,随着调用完毕而消失
而堆内存的内容并不会立即消失。所以要用final修饰。
而加了final修饰,这个变量就成了常量。变量消失了,但在内存中存储的数据是20,我还是有数据在使用的