在学习单例时发现,外部类可以访问内部类的私有成员
如下面代码所示:
//Initialization on Demand Holder
class Singleton {
private Singleton() {
}
private static class HolderClass {
private final static Singleton instance = new Singleton();
}
public static Singleton getInstance() {
return HolderClass.instance;
}
public static void main(String args[]) {
Singleton s1, s2;
s1 = Singleton.getInstance();
s2 = Singleton.getInstance();
System.out.println(s1==s2);
}
}
内部类能访问外部类成员比较好理解,但为什么外部类能访问内部类的私有成员呢?