Вызов main внутри кода
Можем ли мы позвонить main()
функция внутри любой другой функции? Я пытался, но не придумал.
Если мы не можем это назвать, то почему?
Зачем main()
не похожи на обычные методы?
4 ответа
Да, почему бы не попробовать что-то вроде:
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()");
}
}
Запуск main () A выдаст:
a's main()
B's main()
Все действия, которые вы выполняете одним другим методом, также можно выполнять в основном методе.
Единственное отличие между основным методом и другими методами состоит в том, что сервер основного метода является отправной точкой для запуска класса.
Команда java запускает приложение Java. Это делается путем запуска среды выполнения Java, загрузки указанного класса и вызова метода main этого класса.
За исключением этой причины, больше ничего нет.