我正在阅读学习 Java 中的内部类。我找到了这段代码
class Animal{
class Brain{
}
}
编译后, javap 'Animal$Brain'
输出为
Compiled from "Animal.java"class
Animal$Brain {
final Animal this$0;
Animal$Brain(Animal);
}
它解释了内部类如何在内部类构造函数中获取对其封闭实例的引用。但是当我像这样将内部类定义为私有时
class Animal{
private class Brain{
}
}
然后编译后, javap 'Animal$Brain'
输出为
Compiled from "Animal.java"
class Animal$Brain {
final Animal this$0;
}
那么为什么输出不同呢?为什么没有显示内部类构造函数?在后一种情况下,内部类也正在获取封闭类实例的引用。