public static void main(String[] args) – Metodo principale di Java

Introduzione

Il metodo Java main è di solito il primo metodo che impari quando inizi a programmare in Java perché è il punto di ingresso per l’esecuzione di un programma Java. Il metodo main può contenere codice da eseguire o chiamare altri metodi, e può essere collocato in qualsiasi classe che faccia parte di un programma. I programmi più complessi di solito hanno una classe che contiene solo il metodo main. La classe che contiene il metodo main può avere qualsiasi nome, anche se di solito puoi chiamare la classe Main.

Nei seguenti esempi, la classe che contiene il metodo main è chiamata Test:

Test.java
public class Test {

	public static void main(String[] args){

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

In questo articolo imparerai cosa significa ciascun componente del metodo main.

Sintassi del Metodo Main di Java

La sintassi del metodo main è sempre la seguente:

public static void main(String[] args){
	// del codice
}

Puoi modificare solo il nome dell’argomento dell’array di String. Ad esempio, puoi cambiare args in myStringArgs. L’argomento dell’array di String può essere scritto come String... args o String args[].

publico

L’accesso modificatore del metodo main deve essere publico in modo che il JRE possa accedere ed eseguire questo metodo. Se un metodo non è pubblico, allora l’accesso è limitato. Nell’esempio di codice seguente, al metodo main manca il modificatore di accesso publico:

Test.java
public class Test {

	static void main(String[] args){

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

Quando si compila ed esegue il programma, si verifica il seguente errore perché il metodo main non è pubblico e il JRE non riesce a trovarlo:

  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

statico

Quando il programma Java inizia, non c’è nessun oggetto della classe presente. Il metodo main deve essere statico in modo che la JVM possa caricare la classe in memoria e chiamare il metodo main senza creare prima un’istanza della classe. Nell’esempio di codice seguente, al metodo main manca il modificatore statico:

Test.java
public class Test {

	public void main(String[] args){

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

Quando si compila ed esegue il programma, si verifica il seguente errore perché il metodo main non è statico:

  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

Ogni metodo Java deve fornire il tipo di ritorno. Il tipo di ritorno del metodo Java main è void perché non restituisce nulla. Quando il metodo main è finito di eseguire, il programma Java termina, quindi non c’è bisogno di un oggetto restituito. Nell’esempio di codice seguente, il metodo main tenta di restituire qualcosa quando il tipo di ritorno è void:

Test.java
public class Test {

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

Quando si compila il programma, si verifica il seguente errore perché Java non si aspetta un valore restituito quando il tipo di ritorno è void:

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

main

Il metodo Java main è sempre denominato main. Quando un programma Java inizia, cerca sempre il metodo main. Nel seguente esempio di codice viene mostrato un metodo main rinominato in myMain:

Test.java
public class Test {

	public static void myMain(String[] args){

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

Quando si compila ed esegue il programma, si verifica il seguente errore perché JRE non riesce a trovare il metodo main nella 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

Il metodo Java `main` accetta un singolo argomento di tipo array `String`. Ogni stringa nell’array è un argomento da riga di comando. Puoi utilizzare gli argomenti da riga di comando per influenzare il funzionamento del programma o per passare informazioni al programma durante l’esecuzione. Il codice di esempio seguente mostra come stampare gli argomenti da riga di comando che inserisci quando esegui il programma:

Test.java
public class Test {

	public static void main(String[] args){

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

Quando compili il programma e poi lo esegui con alcuni argomenti da riga di comando separati da spazi, gli argomenti vengono stampati nel terminale:

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

Conclusione

In questo articolo hai appreso ogni componente del metodo `main` di Java. Continua il tuo apprendimento con altri tutorial Java.

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