java中局部内部类的特点:
1.定义在代码块、方法体的内的类叫做局部内部类
2.局部内部类访问外部类的属性和方法使用“外部类名.this.属性名”和“外部类名.this.方法名(参数)”的形式
3.对外部世界完全隐蔽,只能在其作用域内生成对象
局部内部类有以下局限性:
1.局部内部类不能加访问修饰符,因为它们不是类的成员
2. 成员内部类不能与外部类重名
3.局部内部类访问作用域的局部变量,该局部变量需要用final修饰
具体用代码说明:
public class PartInnerClassDemo { public static void main(String[] args) { Outer3 outer3 = new Outer3(); // new一个Outer3的对象 outer3.showOuter(); // 调用outer3的showOuter方法 } } class Outer3 { private String name = "zhangsan "; private int num1 = 10; private static int num2 = 20; public void showOuter() { final int num4 = 50; class Inner3 { // 创建一个局部内部类,类名前一定不能加修饰符 private int num3 = 30; private int num1 = 20; public void showInner() { System.out.println(num3); // 打印局部内部类里的num3 System.out.println(num1);// 打印局部内部类里的num1,一定记住,不是外部类的num1! System.out.println(Outer3.this.num1);// 这样才是打印外部类中的num1 System.out.println(Outer3.num2);// 打印外部类中的静态变量num2 System.out.println(num4);// 局部内部类只能访问声明其方法中的常量,就是说只能访问在showOuterus这个方法中的常量 } } Inner3 inner3 = new Inner3(); // 创建对象的时候必须要在局部内部类之后创建, inner3.showInner(); // 调用局部内部类的showInner方法 } }