как использовать public static int main (String args [])? в Java [dубликат]

Установка электронного-wechat работает для меня.

sudo apt install snapd snapd-xdg-open
sudo snap install electronic-wechat
42
задан 2 July 2015 в 22:57

6 ответов

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

-5
ответ дан 15 August 2018 в 16:53

Да, мы можем написать основной метод с возвращаемым типом, отличным от 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){ }

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

-3
ответ дан 15 August 2018 в 16:53
  • 1
    Кто воздерживается от этой ерунды? Другой тип возврата не означает перегрузку и то, что показывает Anurag здесь, не перегружает, просто разные способы выражения одного и того же типа параметра. И совершенно очевидно, что компиляция терпит неудачу, если нет метода main. – Tom 24 September 2017 в 19:18

Один из способов сделать это - изменить значения 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]);
}
}

Тогда выход:

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

-4
ответ дан 15 August 2018 в 16:53
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 1. Можем ли мы написать класс java с: public static int main (String [] args) {

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

64
ответ дан 15 August 2018 в 16:53

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

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

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

Завершает работу запущенной виртуальной машины Java. Аргумент служит в качестве кода состояния; по соглашению, отличный от нуля код состояния указывает на ненормальное завершение.
32
ответ дан 15 August 2018 в 16:53
  • 1
    @DeepakSharma Не из той же программы. Вы можете написать скрипт-оболочку на выбранном вами языке оболочки, однако вызов System.exit в Java будет прерывать работу во время выполнения. – Pavel 10 September 2017 в 00:39

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

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

6
ответ дан 15 August 2018 в 16:53
  • 1
    Ваш ответ не объясняет, что это делает и почему это может быть сопоставимо с возвратом int из main. – Martin Törnwall 20 August 2011 в 11:59
  • 2
    @secretformula: Ваш ответ написан в стиле учителя, дающего некоторую информацию, в надежде, что студент будет следить и узнать больше. В StackOverflow цель состоит в том, чтобы дать полные ответы, которые не только помогают оригинальному ассерту, но также предоставляют полные ответы людям, которые приходят позже . Таким образом, вы можете захотеть найти ответы на этот вопрос в будущем. – Conspicuous Compiler 20 August 2011 в 12:08

Другие вопросы по тегам:

Похожие вопросы: