内部类有两种主要形式:局部内部类(定义在方法内部)和成员内部类(定义在类的内部,但不在方法内部)。内部类在编译时会被转换成OuterClassInnerClass的形式,如果内部类是静态的,则变成OuterClassInnerClass.class。请注意,内部类可以是public的、protected的、包级别的或private的,取决于它们在哪个作用域内被定义。如果内部类实现了接口,那么它的方法可以是public的或protected的,但不能是private的。匿名内部类是没有名字的内部类。