内部类

内部类

在类的内部定义一个新的类

  • 内部类的class文件名:外部类$内部类.class(为了区分是哪一个外部类的内部类)
    好处
  • 可以直接访问外部类的所有成员
  • 内部类与外部类存在同名的成员时,默认是访问内部类的成员(可以通过:外部类.this.成员 指定访问成员变量)
  • 私有的成员内部类只能通过在外部类中定义一个公共的方法访问内部类
    应用场景
  • 如果我们在描述A事物的时候,A事物内部还维护了另外一个B事物,而且B事物还必须访问到A事物的成员,那么这时候我们就可以使用内部类描述B事物 比如:人--心脏
    类型
    • 成员内部类
      • 访问方式:
        • 在外部类提供一个方法创建内部类的对象进行访问
        • 在其他类中直接创建内部类的对象进行访问
          • 格式:
            外部类.内部类 变量名 = new 外部类().new 内部类();
内部类_第1张图片
image.png
  • 局部内部类
    • 在一个方法内部定义的类称为内部类
      • 细节: 如果局部内部类要访问局部变量,那么局部变量必须使用final去修饰
  • 匿名内部类
    • 没有类名的内部类就称作为匿名内部类
    • 使用前提:继承或者实现
    • 格式
内部类_第2张图片
image.png

你可能感兴趣的:(内部类)