Подтвердить что ты не робот

Может ли основной метод в Java возвращать что-то?

Недавно я провел интервью, и они задали мне два вопроса в основной Java.

Q 1.

Можно ли написать класс java с помощью

public static int main(String[] args){
     System.out.println("Hello");

Я ответил: Нет. Компилятор не будет компилировать его, так как ожидается, что тип возврата main будет int, хотя мы можем его перегрузить.

Q 2: Следующий вопрос, на который я не смог ответить.

Напишите программу, чтобы ваш метод Java main мог что-то вернуть.

т.е. как вы можете сделать public static void main([] args), чтобы что-то вернуть?

Может ли кто-нибудь помочь мне ответить на этот вопрос?

4b9b3361

Ответ 1

Q 1. Можем ли мы написать класс java с: public static int main (String [] args) {

Да, вы можете, но не можете запустить этот класс Java.

Пример класса:

class MainTest {

        public static int main(String[] args) {
                return 1;
        }
}

При попытке запустить это сообщение вы получите сообщение об ошибке:

Error: Main method must return a value of type void in class MainTest, please 
define the main method as:
   public static void main(String[] args)

Q 2: Следующий вопрос, на который я не могу ответить. Он попросил написать программу, чтобы что ваш основной метод java может что-то вернуть.

Вы можете использовать System # exit (int) для выхода из вашей программы с помощью специального кода выхода, который может быть интерпретирован операционной системой.

Ответ 2

Как правило, на языках, где main возвращает int (например, C и С++), код возврата main становится кодом завершения процесса, который часто используется интерпретаторами команд и другими внешними программами для определения успешно ли этот процесс завершен. Чтобы добиться такого же эффекта в Java, используйте метод System.exit (аналогичный стандартной функции C exit):

public static void main(String[] args) {
  System.exit(42);
}

Задание приведенной выше документации Java:

Завершает работу запущенной виртуальной машины Java. Аргумент служит в качестве кода состояния; по соглашению, ненулевой код состояния указывает на ненормальное завершение.

Ответ 3

Нельзя вернуть значение из основной функции Java. Однако программы могут возвращать код состояния.

Попробуйте выполнить следующее, чтобы выйти из состояния int в Java System.exit(45)

Ответ 4

Да, мы можем написать основной метод с возвращаемым типом, отличным от void. Это просто означает, что мы можем перегрузить наш основной метод. Некоторые примеры:

  • public static void main(String ... x){ }
  • public static int main(String []args){ }
  • public static void main(string array[]){ }

Но обратите внимание, что компилятор знает только

public static void main(String []args){ }

Если вышеуказанный метод отсутствует, он не будет компилироваться.

Ответ 5

Один из способов сделать это - изменить значения args [i] для i, меньшего чем args.length, внутри основного метода метода.

Пример:

public class Test{
//
public static void main(String[] args){
       args[0] = "a value";
       args[1] = "another value";
}
}

Из другого класса:

public class Other{ 
public static void main(String[] args){
    String[] result={"",""};
        Test.main(result);
        System.out.println(result[0]);
        System.out.println(result[1]);
}
}

Тогда выход:

значение
другое значение

Ответ 6

Да Вы можете вернуть тип void. Но значение будет передаваться в JVM, и после возврата не будет больше кода, потому что элемент управления вернется в JVM, который вызывает main()