我们可以在任何其他函数中调用main()
函数吗?我试过但没有想出来。
如果我们不能称之为,那为什么呢?
为什么main()
不像普通方法?
是的,为什么不尝试这样的事情:
public class Main {
public static void main(String args[]) {
System.out.println("Hello World");
}
}
public class NewMain {
public static void main(String args[]) {
Main.main(args);
}
}
如果运行:
java NewMain
输出为:
Hello World
为什么main()不像普通方法
在什么意义上不像普通方法?它就像任何其他方法一样。我会试着解释为什么main
看起来像这样,也许它会帮助你理解发生了什么。
它void
因为当它完成时,并不意味着程序完成了。如果它生成一个新线程,则可能是这些线程仍在运行。
它之所以public
,是因为它是由 JVM 调用的,这超出了项目的范围。
当然,它必须static
因为当 JVM 调用它时,被调用的类不存在任何对象。
当你理解它时,它没有什么特别的,所以是的......它可以像任何其他static
方法一样被调用。
当然可以,main() 就像该领域的其他方法一样。
public class A {
public static void main(String[] args) {
System.out.println("a's main()");
B.main(new String[0]);
}
}
public class B {
public static void main(String[] args) {
System.out.println("B's main()");
}
}
运行 A 的 main() 将产生:
a's main()
B's main()
你执行的所有操作也可以通过其他方法在主方法上完成
main 方法和其他方法之间的唯一区别是 main 方法服务器作为运行类的起点
java 命令启动一个 Java 应用程序。它通过启动 Java 运行时环境、装入指定的类并调用该类的 main 方法来执行此操作。
除了这个原因,没有别的了。