为什么我能够访问封闭类(第一个)之外的“私有”嵌套类?
import java.util.*;
import java.lang.*;
import java.io.*;
public class hi {
static class first {
private static class nested {
void main() {
System.out.println("HELLO WORLD");
}
}
}
public static void main(String[] args) {
first.nested a = new first.nested();
a.main();
}
}
从 JLS 6.6.1 开始:
否则,成员或构造函数将被声明为私有。仅当访问发生在包含成员或构造函数声明的顶级类或接口的主体内时,才允许访问。
hi
类包含 nested
类,因此允许在 nested
体内的任何位置访问 hi
。