局部内部类特点:
1.定义在代码块、方法体内的类叫局部内部类
2.局部内部类访问外部类的属性和方法使用“外部类名.this.属性名”和“外部类名.this.方法名(参数)”的形式
3.对外部世界完全隐藏,只能在作用域内生成对象。
局部内部类有以下限制:
1.局部类不能加访问修饰符,因为他们不是类成员
2.成员内部类不能与外部类重名
3.局部内部类访问作用域内的局部变量,该局部变量需要加final修饰
public class LocalInnerClass { public static void main(String[] args) { // TODO Auto-generated method stub Outer3 outer3 = new Outer3(); outer3.OuterShow(); } } class Outer3{ private int num1 = 1; private static int num2 = 2; public void OuterShow() { final int num4 = 4;//fianl好像修复了,不声明为final在内部类里也可以用(可以去掉final) //Inner inner = new Inner();不能在这里实例化,因为Inner类还没有初始化,就不能调用该类 class Inner{//局部内部类不能加访问修饰符 public void show() { int num1 = 10; System.out.println(num1); System.out.println(Outer3.this.num1);//调用外部类的属性写法 System.out.println(Outer3.num2);//调用外部静态属性写法 System.out.println(num4); } } Inner inner = new Inner();//应该在这里实例化 inner.show(); } }