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方法
}
}