Поиск по сайту:

public static void main(String[] args) — основной метод Java


Введение

Метод Java main обычно является первым методом, о котором вы узнаете, когда начинаете программировать на Java, потому что это точка входа для выполнения программы Java. Метод main может содержать код для выполнения или вызова других методов, и его можно поместить в любой класс, являющийся частью программы. Более сложные программы обычно имеют класс, содержащий только метод main. Класс, содержащий метод main, может иметь любое имя, хотя обычно вы можете просто вызвать класс Main.

В следующих примерах класс, содержащий метод main, называется Test:

public class Test {

	public static void main(String[] args){

		System.out.println("Hello, World!");
	
	}
}

В этой статье вы узнаете, что означает каждый компонент метода main.

Синтаксис основного метода Java

Синтаксис метода main всегда следующий:

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

Вы можете изменить только имя аргумента массива String. Например, вы можете изменить args на myStringArgs. Аргумент массива String может быть записан как String... args или String args[].

публичный

Модификатор доступа метода main должен быть public, чтобы JRE могла получить доступ к этому методу и выполнить его. Если метод не является общедоступным, доступ к нему ограничен. В следующем примере кода в методе main отсутствует модификатор доступа public:

public class Test {

	static void main(String[] args){

		System.out.println("Hello, World!");
	
	}
}

Когда вы компилируете и запускаете программу, возникает следующая ошибка, поскольку метод main не является общедоступным и JRE не может его найти:

  1. javac Test.java
  2. java Test
Output
Error: 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

статический

Когда программа Java запускается, объект класса отсутствует. Метод main должен быть static, чтобы JVM могла загрузить класс в память и вызвать метод main без создания экземпляра класса. первый. В следующем примере кода в методе main отсутствует модификатор static:

public class Test {

	public void main(String[] args){

		System.out.println("Hello, World!");
	
	}
}

Когда вы компилируете и запускаете программу, возникает следующая ошибка, поскольку метод main не является статическим:

  1. javac Test.java
  2. java Test
Output
Error: Main method is not static in class Test, please define the `main` method as: public static void main(String[] args)

пустота

Каждый метод Java должен предоставлять тип возвращаемого значения. Тип возвращаемого значения метода main в Java — void, поскольку он ничего не возвращает. Когда метод main завершает выполнение, программа Java завершается, поэтому в возвращаемом объекте нет необходимости. В следующем примере кода метод main пытается что-то вернуть, когда тип возвращаемого значения — void:

public class Test {

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

При компиляции программы возникает следующая ошибка, поскольку Java не ожидает возвращаемого значения, когда тип возвращаемого значения void:

  1. javac Test.java
Output
Test.java:5: error: incompatible types: unexpected return value return 0; ^ 1 error

основной

Метод Java main всегда называется main. Когда программа Java запускается, она всегда ищет метод main. В следующем примере кода показан метод main, переименованный в myMain:

public class Test {

	public static void myMain(String[] args){

		System.out.println("Hello, World!");
	}
}

Когда вы компилируете и запускаете программу, возникает следующая ошибка, поскольку JRE не может найти метод main в классе:

  1. javac Test.java
  2. java Test
Output
Error: 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

Строка [] аргументы

Метод Java main принимает один аргумент типа массива String. Каждая строка в массиве является аргументом командной строки. Вы можете использовать аргументы командной строки, чтобы влиять на работу программы или передавать информацию в программу во время выполнения. В следующем примере кода показано, как распечатать аргументы командной строки, которые вы вводите при запуске программы:

public class Test {

	public static void main(String[] args){

    	for(String s : args){
		System.out.println(s);
    	}
	
    }
}

Когда вы скомпилируете программу, а затем запустите ее с несколькими аргументами командной строки, разделенными пробелами, аргументы будут напечатаны в терминале:

  1. javac Test.java
  2. java Test 1 2 3 "Testing the main method"
Output
1 2 3 Testing the main method

Заключение

В этой статье вы узнали о каждом компоненте метода Java main. Продолжите свое обучение с помощью дополнительных руководств по Java.