内部类

内部类定义:将一个类定义放在另一个类的内部,这就是内部类。

内部类是一种非常有用的特性,定义在类内部的类,持有外部类的引用,但是却对其他外部类不可见,有点像一种隐藏代码的机制。

创建内部类

 1 package day04;
 2 
 3  
 4 
 5 public class OutClass {
 6 
 7     private String name;
 8 
 9     private int age;
10 
11  
12 
13     class InnerClass {
14 
15         public InnerClass() {
16 
17             name = "Jack";
18 
19             age = 26;
20 
21         }
22 
23     }
24 
25 }

InnerClass就是outClass的一个内部类。每个内部类都能独立地继承一个(接口的)实现,无论外部类是否继承了某个(接口的)实现,对于内部类没有影响。这就是隐藏了内部实现细节。内部类拥有外部类的访问权。

内部类不仅可以定义在类的内部,还能定义在方法和作用域内部,这种被称为局部内部类,除此外还有匿名内部类、内部类可以实现Java中的多继承。定义内部类的方式:

  • 一个在方法中定义的类(局部内部类)
  • 一个定义在作用域内的类,这个作用域在方法的内部(成员内部类)
  • 一个实现了接口的匿名类(匿名内部类)
  • 一个匿名类,它扩展了非默认构造器的类
  • 一个匿名类,执行字段初始化操作
  • 一个匿名类,它通过实例初始化实现构造

每个类都会产生一个*.class的字节码文件,其中包含了如何创建该类型的对象的全部信息,那么如何表示内部类的性呢?可以实现$表示,比如OutcClass$Innerclass.class

posted @ 2021-01-30 23:18  Eleanor123  阅读(53)  评论(0编辑  收藏  举报