Введение
Метод main
на языке Java обычно является первым методом, который вы изучаете, начиная программировать на Java, потому что это точка входа для выполнения программы на Java. Метод main
может содержать код для выполнения или вызова других методов, и его можно разместить в любом классе, который является частью программы. Более сложные программы обычно имеют класс, содержащий только метод main
. Класс, содержащий метод main
, может иметь любое имя, хотя обычно его называют просто Main
.
В приведенных далее примерах класс, содержащий метод main
, называется Test
:
public class Test {
public static void main(String[] args){
System.out.println("Hello, World!");
}
}
В этой статье вы узнаете, что означает каждый компонент метода main
.
Синтаксис метода main в Java
Синтаксис метода main
всегда следующий:
public static void main(String[] args){
// какой-то код
}
Вы можете изменить только имя аргумента массива String
. Например, вы можете изменить args
на myStringArgs
. Аргумент массива String
можно записать как String... args
или String args[]
.
public
Модификатор доступа метода main
должен быть public
, чтобы JRE мог получить доступ к этому методу и выполнить его. Если метод не является общедоступным, доступ к нему ограничен. В следующем примере кода метод main
не имеет модификатора доступа public
:
public class Test {
static void main(String[] args){
System.out.println("Hello, World!");
}
}
При компиляции и запуске программы возникает следующая ошибка, потому что метод main
не является общедоступным, и JRE не может его найти:
- javac Test.java
- java Test
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
Когда программа на Java запускается, объект класса отсутствует. Метод main
должен быть объявлен как static
, чтобы JVM мог загрузить класс в память и вызвать метод main
без создания экземпляра класса. В следующем примере кода метод main
не имеет модификатора static
:
public class Test {
public void main(String[] args){
System.out.println("Hello, World!");
}
}
При компиляции и запуске программы возникает следующая ошибка, потому что метод main
не является static
:
- javac Test.java
- java Test
OutputError: Main method is not static in class Test, please define the `main` method as:
public static void main(String[] args)
void
Каждый метод Java должен предоставлять тип возвращаемого значения. Тип возвращаемого значения метода Java main
– void
, потому что он ничего не возвращает. Когда метод main
завершает выполнение, программа Java завершает свою работу, поэтому нет необходимости в возвращаемом объекте. В следующем примере кода метод main
пытается вернуть что-то, когда тип возвращаемого значения – void
:
public class Test {
public static void main(String[] args){
return 0;
}
}
При компиляции программы возникает следующая ошибка, потому что Java не ожидает возвращаемого значения, когда тип возвращаемого значения – void
:
- javac Test.java
OutputTest.java:5: error: incompatible types: unexpected return value
return 0;
^
1 error
main
Метод main
в Java всегда именуется main
. Когда программа на Java запускается, она всегда ищет метод main
. Следующий пример кода показывает метод main
, переименованный в myMain
:
public class Test {
public static void myMain(String[] args){
System.out.println("Hello, World!");
}
}
При компиляции и запуске программы возникает следующая ошибка, потому что JRE не может найти метод main
в классе:
- javac Test.java
- java Test
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
Метод main
в Java принимает единственный аргумент типа массива String
. Каждая строка в массиве представляет собой аргумент командной строки. Вы можете использовать аргументы командной строки для воздействия на работу программы или передачи информации в программу во время выполнения. В следующем примере кода показано, как вывести аргументы командной строки, которые вы вводите при запуске программы:
public class Test {
public static void main(String[] args){
for(String s : args){
System.out.println(s);
}
}
}
Когда вы компилируете программу, а затем запускаете ее с несколькими аргументами командной строки, разделенными пробелами, аргументы выводятся в терминал:
- javac Test.java
- java Test 1 2 3 "Testing the main method"
Output1
2
3
Testing the main method
Вывод
В этой статье вы узнали о каждом компоненте метода main
в Java. Продолжайте изучение с более подробными учебными материалами по Java.