• 什么是内部类

    一个类A中定义了另一个类B,那么B就属于A的内部类。

    • 内部类的分类

      • 成员内部类
      • 局部内部类
      • 匿名内部类
    • 成员内部类

      • 定义位置

    类中方法外

    • 创建格式

    外部类名.内部类名 对象名 = new 外部类名().new 内部类名(参数);

    • 成员内部类访问外部类的成员
      1. - 在内部类中有代表外部类对象的格式 : 外部类名的.this , 私有的也可以访问
      2. - 外部类要想访问内部类成员 , 需要创建内部类对象
    • 匿名内部类
      • 性质

    没有类名,只能使用一次

    • 使用场景

    直接调用方法 , 作为方法的传参 , 返回值类型

    • 格式

    new 类名/接口名(){ 重写抽象方法 }

    • 使用方式

    1.使用父类型变量多态接收该匿名子类对象。
    2. 以匿名对象的方式使用
    1)直接调用方法使用
    2) 当做方法的参数传递
    3)当做方法的返回值使用

    • 注意事项

    1 .如果方法的参数是一个类的话 , 调用此方法需要传入此类的对象或者此类的子类对象
    2. 如果方法的返回值类型是一个类的话 , 需要返回此类的对象 , 或者此类的子类对象
    3. 如果方法的参数是一个接口的话 , 调用此方法需要传入此接口的实现类对象
    4. 如果方法的返回值类型是一个接口的话 , 需要返回此接口的实现类对象