面试题每日复盘2023/05/21日

说说内部类

  1. 内部类可以访问外部类,但是外部类不可以访问内部类;
  2. 内部类的实例化,必须借助外部类;
  3. 内部类可以直接使用外部类的成员,包括成员属性和成员方法;
  4. 内部类中private基本是没有作用的;
  5. static限制了访问的范围
  6. 使用外部类.this.属性来区分同名属性;
  7. 外部类访问内部类,需要实例化;
  8. 内部类编译后的class文件是,外部类$内部类.class

分类:

  • 静态内部类;范围外部的静态变量,new Outer.StaticInner();
  • 成员内部类;访问所有变量和方法,创建依靠外部类的实例,外部可以直接访问;
  • 私有内部类;private修饰,不能访问,只能通过方法去简介访问;
  • 匿名内部类;
  • 局部内部类:定义再方法中,访问所有地方;

好处:

  1. 优化了单继承,换一种方式实现了多继承!;
  2. 封装性比较好;
  3. 一个内部类可以访问外部类的所有数据;
  4. 很方便定义回调;

应用:

  1. 一些多算法场合;
  2. 解决一些非面向对象的语句块;
  3. 代码更加灵活和可扩展;
  4. 类不再被其它类使用的时候;

你可能感兴趣的:(java,开发语言)