局部内部类(12.17)
1、可以直接访问外部类的所有成员
2、可以在外部类中的局部范围中创建对象,通过对象调用内部类中的方法,来使用内部类的局部功能。
class Outer6{
private int num = 10;
public void fun(){
int num2 = 100;//局部内部类所存在的方法的局部变量自动加上final关键字
class Inner6{
int num3 = 200;
public void show(){
// num3 = 300;
//从内部类引用的本地变量必须是最终变量或实际上的最终变量
// num2 = 400;
//通过反编译工具查看后发现局部内部类存在的方法中定义的局部变量自动加上了final
//特点:jdk1.8之后会自动添加final关键字。
System.out.println(num);
System.out.println(num2);
System.out.println(num3);
}
}
//创建内部类对象
Inner6 inner6 = new Inner6();
inner6.show();
}
public void fun2(){
//方法与方法之间内部访问不到局部内部类
// Inner6 inner6 = new Inner6();
}
}
public class InnerClassDemo6 {
public static void main(String[] args) {
Outer6 outer6 = new Outer6();
outer6.fun();
}
}