20191116java笔记:内部类
#一、内部类(Inner class) 定义:在Java中,允许一个类的定义位于另一个类的内部,前者称谓内部类,后者称为外部类 1.内部类的分类 成员内部类:在类内部直接定义的类(可分为静态和非静态内部类) 一方面,作为外部类的成员 调用外部类的结构(方法、属性) 调用外部类的属性和方法时,需要完整路径 Person.this.属性 可以被四种不同的权限修饰 另一方面,作为一个类 可以定义属性方法和构造器 可以用final修饰,表示此类不能被继承;不适用final,则此内部类可以被继承 可以用abstract修饰 局部内部类:方法内、代码块内、构造器内 注意点1:在局部内部类的方法中,如果需要调用局部内部类所声明的方法中的局部变量的话,必须是final修饰的变量 2. 关于内部类,需要关注三个点 如何实例化成员内部类的对象 Person.Don dog = new Person.Dog(); // 静态内部类的实例化方式 Person.Bird bird = new Person().new Bird(); // 非静态内部类的实例化方式 如何在成员内部类中区分调用外部类的结构 System.out.println(name); // 直接调用形参 System.out.println(this.name); // 调用内部类的非静态属性 System.out.println