微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么必须强制将main方法声明为public…为什么JVM无法执行private main方法

如何解决为什么必须强制将main方法声明为public…为什么JVM无法执行private main方法

| 通常,我在各种书籍中发现main方法应该是公共的,因为它对于classloader应该是可见的。但是JVM执行(或提供特殊处理)各种私有方法,例如ObjectOutputStream中的readobject / writeObject方法。     

解决方法

        很明显,程序的入口点应该是可见的。     ,        我猜是因为这就是Java语言规范对其做出决定的方式。我可以看到为什么他们选择了public access修饰符,因为您是从Class外部(通过命令行)调用Java程序的,所以它适合Java的访问控制系统,因此主方法应该是public。 如果允许main方法为私有方法,但是您必须从其他地方调用它,例如与Java的访问修饰符相反的Java命令行。不管它在技术上是否可行,行为都是不一致的。     ,        不必强制将main()声明为public。我们也可以将其声明为私有。 当一个方法被声明为私有方法时,程序会正确编译,但会给出运行时错误。 主要方法不公开 但是,如果将main方法声明为私有方法,则将无法作为独立的Java程序执行该类。任何需要作为独立文件执行的Java类都需要具有main方法,该方法是public,static并返回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
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。