【发布时间】:2013-09-08 04:52:43
【问题描述】:
我写了以下代码
class Hello //Note the class is not public
{
public static void main(String args[]) {
System.out.println("Hello");
}
}
所以,当我运行它时,它运行良好并打印输出“Hello”。
但是,如果 JVM 规范要求 main 方法应该是公共的,因为“否则它看不到 main”,它不应该也适用于类吗?如果 JVM 在未声明为 public 时“看不到” Hello.main(),它如何能够看到 A 类本身。
除了“因为规范是这么说的”之外,还有什么解释吗?
如果 JVM 能够看到所有类和方法,因为它本身就是“安全/可见性实施者”,那么为什么需要将 main 方法声明为 public。
【问题讨论】:
-
也可以在非默认包中运行!
-
好吧,忘了我当时说的话,我完全错了。
-
您在规范中的什么地方找到了“否则它看不到 main”的引用?
-
很多答案。请参阅我之前发布的类似讨论的链接,其中表明该类not 必须是Public。规范没有这样说。
标签: java