public static void main(String[] args) – Método principal Java

Introdução

O método main em Java é geralmente o primeiro método que você aprende ao começar a programar em Java, pois é o ponto de entrada para a execução de um programa Java. O método main pode conter código para executar ou chamar outros métodos, e pode ser colocado em qualquer classe que faça parte de um programa. Programas mais complexos geralmente têm uma classe que contém apenas o método main. A classe que contém o método main pode ter qualquer nome, embora tipicamente você possa simplesmente chamar a classe de Main.

Nos exemplos a seguir, a classe que contém o método main é chamada de Teste:

Test.java
public class Test {

	public static void main(String[] args){

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

Neste artigo, você aprenderá o que cada componente do método main significa.

Sintaxe do Método Main em Java

A sintaxe do método main é sempre:

public static void main(String[] args){
	// algum código
}

Você só pode alterar o nome do argumento do array de String. Por exemplo, você pode alterar args para meusArgsString. O argumento do array de String pode ser escrito como String... args ou String args[].

public

O modificador de acesso do método main precisa ser public para que o JRE possa acessar e executar este método. Se um método não for público, o acesso é restrito. No exemplo de código a seguir, o método main está sem o modificador de acesso public:

Test.java
public class Test {

	static void main(String[] args){

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

Ao compilar e executar o programa, ocorre o seguinte erro porque o método main não é público e o JRE não consegue encontrá-lo:

  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

static

Quando o programa Java inicia, não há um objeto da classe presente. O método main precisa ser static para que o JVM possa carregar a classe na memória e chamar o método main sem criar uma instância da classe primeiro. No exemplo de código a seguir, o método main está sem o modificador static:

Test.java
public class Test {

	public void main(String[] args){

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

Ao compilar e executar o programa, ocorre o seguinte erro porque o método main não é static:

  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)

void

Cada método Java deve fornecer o tipo de retorno. O tipo de retorno do método Java main é void porque não retorna nada. Quando o método main é concluído, o programa Java termina, então não há necessidade de um objeto retornado. No código de exemplo a seguir, o método main tenta retornar algo quando o tipo de retorno é void:

Test.java
public class Test {

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

Quando você compila o programa, ocorre o seguinte erro porque o Java não espera um valor de retorno quando o tipo de retorno é void:

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

main

O método Java main é sempre nomeado main. Quando um programa Java inicia, sempre procura pelo método main. O código de exemplo a seguir mostra um método main renomeado para myMain:

Test.java
public class Test {

	public static void myMain(String[] args){

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

Ao compilar e executar o programa, ocorre o seguinte erro porque o JRE não consegue encontrar o método main na classe:

  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

String[] args

O método main do Java aceita um único argumento do tipo array de String. Cada string no array é um argumento de linha de comando. Você pode usar argumentos de linha de comando para afetar o funcionamento do programa ou passar informações para o programa em tempo de execução. O código de exemplo a seguir mostra como imprimir os argumentos de linha de comando que você insere ao executar o programa:

Test.java
public class Test {

	public static void main(String[] args){

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

Quando você compila o programa e então o executa com alguns argumentos de linha de comando separados por espaços, os argumentos são impressos no terminal:

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

Conclusão

Neste artigo, você aprendeu sobre cada componente do método main do Java. Continue sua aprendizagem com mais tutoriais de Java.

Source:
https://www.digitalocean.com/community/tutorials/public-static-void-main-string-args-java-main-method