通常我会在各种书中发现主要方法应该是公开的,因为它应该对类加载器可见。但是JVM执行(或提供特殊处理)各种私有方法,比如ObjectOutputStream中的readObject / writeObject方法。
答案 0 :(得分:5)
很明显,程序的入口点应该是可见的。
答案 1 :(得分:2)
我猜是因为它就是这样,这就是Java语言规范决定它的方式。我可以看到为什么他们选择了公共访问修饰符,因为你从类外部(通过命令行)调用Java程序,所以它适合Java的访问控制系统,主要方法应该是公共的。
如果允许main方法是私有的,那么你必须从其他地方调用它,例如与Java的访问修饰符相反的java命令行。无论是否在技术上可行,这都是不一致的行为。
答案 2 :(得分:1)
将main()声明为public是非必需的。我们也可以声明它是私人的。 当一个方法声明为private时,程序会正确编译,但会产生运行时错误。 主要方法不公开
但是如果将main方法声明为private,则无法将该类作为独立的java程序执行。任何需要作为独立文件执行的java类都需要具有public,static的main方法并返回void。否则,Java编译器不会将该文件识别为可执行的独立java文件,并且不允许您运行它。
class A
{
int x=7;
void show(){
System.out.println(x);
}
}
class Test
{
private static void main(String args[])
{
A a = new A();
a.show();
}
}
将显示错误
Main method not public