Основной метод Java – main method
Программа Java – это последовательность инструкций, которые выполняются в определенном порядке. Поскольку инструкции выполняются в определенном порядке, Java-программа имеет начало и конец.
Для выполнения вашей программы вам необходимо указать виртуальной машине, с чего начать выполнение программы. Все инструкции(код) должны находиться внутри класса. Класс – это способ группировки данных и инструкций, которые принадлежат друг другу. Таким образом, класс может содержать как переменные, так и методы. Переменная может содержать данные, а метод группирует набор операций над данными(инструкции). Не так страшно, если вы еще не до конца поняли это. Начнем разбираться.
Простое объявление класса Java
Объявление простого класса без каких-либо переменных, методов или любых других инструкций выглядит следующим образом:
Этот код Java должен находиться в файле с тем же именем, что и у класса, и заканчиваться суффиксом файла .java. В частности, имя файла должно быть MyClass.java. Как только файл находится в файле, соответствующем его имени класса и оканчивающемся на .java, вы можете скомпилировать его с помощью компилятора из Java SDK или изнутри вашей Java IDE(что гораздо проще).
Рекомендуется размещать свой класс в пакете Java. Пакет Java – это просто каталог в вашей файловой системе, который может содержать один или несколько файлов. Пакеты могут быть вложенными, как каталоги.
Например, вы можете создать пакет с именем myjavacode, который будет соответствовать каталогу на вашем жестком диске с именем myjavacode.
Если вы находите класс внутри пакета, вы должны указать имя пакета в верхней части файла. Вот как выглядит класс с добавлением объявления пакета:
package myjavacode; public class MyClass
Примечание. Файл MyClass.java должен теперь находиться в каталоге myjavacode и содержать объявление пакета package myjavacode; Недостаточно, чтобы файл находился в правильном каталоге. Также недостаточно просто иметь объявление пакета внутри файла. Оба требования должны быть выполнены.
main() метод
Java-программа начинается с выполнения метода main некоторого класса. Вы можете выбрать имя класса для выполнения, но не имя метода. Метод всегда должен называться main . Вот как выглядит объявление основного метода, когда он находится внутри объявления класса:
package myjavacode; public class MyClass < public static void main(String[] args) < >>
Три ключевых слова public, static и void имеют особое значение. Просто помните, что для объявления метода main() нужны эти три ключевых слова.
После трех ключевых слов у вас есть имя метода. Напомним, что метод – это набор инструкций, которые могут быть выполнены, как если бы они были одной операцией. Вызывая(выполняя) метод, вы выполняете все инструкции внутри этого метода.
После имени метода сначала ставится левая скобка, а затем список параметров. Параметры – это переменные(данные / значения), которые мы можем передать методу, который может использоваться инструкциями в методе для настройки его поведения. Основной метод всегда должен принимать массив объектов String. Вы объявляете массив объектов String следующим образом:
Расскажу о том, что такое String или что такое массив в следующих уроках. Не имеет значения, какое имя вы даете параметру. Ранее в примере с методом main() я вызывал параметр аргумента массива String, а во втором – строковый массив. Вы можете выбрать имя любое.
После списка параметров метода следует сначала левая фигурная скобка(<), затем некоторое пустое пространство, а затем правая фигурная скобка(>). Внутри фигурных скобок инструкции, которые должны выполняться при выполнении основного метода. В приведенном выше примере нет никаких инструкций для выполнения. Метод пуст.
Давайте вставим одну инструкцию в основное тело метода. Вот пример:
package myjavacode; public class MyClass < public static void main(String[] args) < System.out.println("Hello World, Java Program"); >>
Теперь основной метод содержит эту единственную инструкцию:
System.out.println("Hello World, Java Program");
Эта инструкция выведет текст Hello World, Java Program. Если вы запустите свою программу из командной строки, вы увидите вывод в консоли командной строки. Если вы запускаете из IDE, IDE обычно перехватывает весь вывод на консоль и делает его видимым для вас где-то внутри IDE.
Запуск метода main()
Когда вы запускаете программу, вы обычно делаете это через командную строку(консоль). Вы вызываете команду, которая поставляется вместе с JRE, и указываете, какой класс выполнять и какие аргументы передавать методу main(). Затем Java-приложение выполняется внутри JVM. Вот диаграмма, иллюстрирующая это:
Вот пример командной строки:
java -cp classes myjavacode.MyClass
- Первая часть этой команды запускает JVM. В некоторых случаях вам может потребоваться указать полный путь к папке, в которой находится команда на вашем компьютере(обычно внутри подкаталога bin каталога установки Java).
- Второй и третий аргументы(классы -cp) сообщают JVM, в каком каталоге находятся скомпилированные классы. В этом случае скомпилированные классы расположены в каталоге с именем classes.
- Четвертый аргумент – это имя класса Java, который должна выполнить JVM. Обратите внимание, что имя класса также содержит имя пакета, в котором находится класс(«полное имя класса»).
Передача аргументов
Вы можете передавать аргументы из командной строки в метод main().
java -cp classes myjavacode.MyClass Hello World
Когда JVM выполняет метод main() myjavacode.MyClass, массив String, передаваемый в качестве параметра методу main(), будет содержать две строки: «Hello» и «World».
Метод может получить доступ к аргументам из командной строки следующим образом:
package myjavacode; public class MyClass < public static void main(String[] args) < System.out.println( args[0] ); System.out.println( args[1] ); >>
Обратите внимание на ссылки на элемент 0 и элемент 1 в массиве args(args [0] и args [1]). args [0] будет содержать строку(текст) Hello, а args [1] будет содержать мир строки.
В вашем проекте может быть столько классов, сколько вы хотите, с методом main(). Но виртуальной машине можно поручить запускать только один из них одновременно.
public static void main(String[] args) — Java main method
The Java main method is usually the first method you learn about when you start programming in Java because its the entry point for executing a Java program. The main method can contain code to execute or call other methods, and it can be placed in any class that’s part of a program. More complex programs usually have a class that contains only the main method. The class that contains the main method can have any name, although typically you can just call the class Main .
In the examples that follow, the class that contains the main method is called Test :
public class Test public static void main(String[] args) System.out.println("Hello, World!"); > >
In this article you’ll learn what each component of the main method means.
Java Main Method Syntax
The syntax of the main method is always:
public static void main(String[] args) // some code >
You can change only the name of the String array argument. For example, you can change args to myStringArgs . The String array argument can be written as String. args or String args[] .
public
The access modifier of the main method needs to be public so that the JRE can access and execute this method. If a method isn’t public, then access is restricted. In the following example code, the main method is missing the public access modifier:
public class Test static void main(String[] args) System.out.println("Hello, World!"); > >
When you compile and run the program, the following error occurs because the main method isn’t public and the JRE can’t find it:
OutputError: Main method not found in class Test, please define the `main` method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application
static
When the Java program starts, there is no object of the class present. The main method has to be static so that the JVM can load the class into memory and call the main method without creating an instance of the class first. In the following example code, the main method is missing the static modifier:
public class Test public void main(String[] args) System.out.println("Hello, World!"); > >
When you compile and run the program, the following error occurs because the main method isn’t static :
OutputError: Main method is not static in class Test, please define the `main` method as: public static void main(String[] args)
void
Every Java method must provide the return type. The Java main method return type is void because it doesn’t return anything. When the main method is finished executing, the Java program terminates, so there is no need for a returned object. In the following example code, the main method attempts to return something when the return type is void :
public class Test public static void main(String[] args) return 0; > >
When you compile the program, the following error occurs because Java doesn’t expect a return value when the return type is void :
OutputTest.java:5: error: incompatible types: unexpected return value return 0; ^ 1 error
main
The Java main method is always named main . When a Java program starts, it always looks for the main method. The following example code shows a main method renamed to myMain :
public class Test public static void myMain(String[] args) System.out.println("Hello, World!"); > >
When you compile and run the program, the following error occurs because the JRE can’t find the main method in the class:
OutputError: Main method not found in class Test, please define the `main` method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application
String[] args
Java main method accepts a single argument of type String array. Each string in the array is a command line argument. You can use command line arguments to affect the operation of the program, or to pass information to the program, at runtime. The following example code shows how to print the command line arguments that you enter when you run the program:
public class Test public static void main(String[] args) for(String s : args) System.out.println(s); > > >
When you compile the program and then run it with a few command line arguments separated by spaces, the arguments get printed in the terminal:
Output1 2 3 Testing the main method
Conclusion
In this article you learned about each component of the Java main method. Continue your learning with more Java tutorials.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.