- 什么是内部类
一个类A中定义了另一个类B,那么B就属于A的内部类。
内部类的分类
- 成员内部类
- 局部内部类
- 匿名内部类
成员内部类
- 定义位置
类中方法外
- 创建格式
外部类名.内部类名 对象名 = new 外部类名().new 内部类名(参数);
- 成员内部类访问外部类的成员
- 在内部类中有代表外部类对象的格式 : 外部类名的.this , 私有的也可以访问
- 外部类要想访问内部类成员 , 需要创建内部类对象
- 匿名内部类
- 性质
没有类名,只能使用一次
- 使用场景
直接调用方法 , 作为方法的传参 , 返回值类型
- 格式
new 类名/接口名(){ 重写抽象方法 }
- 使用方式
1.使用父类型变量多态接收该匿名子类对象。
2. 以匿名对象的方式使用
1)直接调用方法使用
2) 当做方法的参数传递
3)当做方法的返回值使用
- 注意事项
1 .如果方法的参数是一个类的话 , 调用此方法需要传入此类的对象或者此类的子类对象
2. 如果方法的返回值类型是一个类的话 , 需要返回此类的对象 , 或者此类的子类对象
3. 如果方法的参数是一个接口的话 , 调用此方法需要传入此接口的实现类对象
4. 如果方法的返回值类型是一个接口的话 , 需要返回此接口的实现类对象