请考虑以下代码,其中HelloWorld类具有默认或包私有访问权限:
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
Run Code Online (Sandbox Code Playgroud)
并假设上面的代码保存在一个名为的文件中HelloWorld.java.所以我的问题是:既然HelloWorld现在是一个包私有类,它是如何工作的?这个main()方法不应该在包装上可见或可访问,对吗?
如果课程HelloWorld被公开,那对我来说是完全合理的.仅当使用默认的包 - 私有访问声明它时才会出现混淆.
JVM启动在§12.1JLS的虚拟机启动中描述.
请注意,本章没有提及有关类的可见性检查.它仅规定了main 方法必须是public.
这意味着根本没有检查类级别的可见性(哪种有意义,因为还没有上下文来检查可见性:"package"是"调用者"?).