public static void main(String[] args) - Metodo principale 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 per eseguire o chiamare altri metodi e può essere inserito 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 in genere puoi semplicemente chiamare la classe Main
.
Negli esempi che seguono, la classe che contiene il metodo main
è chiamata Test
:
public class Test {
public static void main(String[] args){
System.out.println("Hello, World!");
}
}
In questo articolo imparerai cosa significa ogni componente del metodo main
.
Sintassi del metodo principale Java
La sintassi del metodo main
è sempre:
public static void main(String[] args){
// some code
}
Puoi cambiare solo il nome dell'argomento dell'array String
. Ad esempio, puoi modificare args
in myStringArgs
. L'argomento dell'array String
può essere scritto come String... args
o String args[]
.
pubblico
Il modificatore di accesso del metodo main
deve essere public
in modo che JRE possa accedere ed eseguire questo metodo. Se un metodo non è pubblico, l'accesso è limitato. Nel seguente codice di esempio, al metodo main
manca il modificatore di accesso public
:
public class Test {
static void main(String[] args){
System.out.println("Hello, World!");
}
}
Quando compili ed esegui il programma, si verifica il seguente errore perché il metodo main
non è pubblico e JRE non riesce a trovarlo:
- 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
statico
All'avvio del programma Java, non è presente alcun oggetto della classe. Il metodo main
deve essere static
in modo che la JVM possa caricare la classe in memoria e chiamare il metodo main
senza creare un'istanza della classe Primo. Nel seguente codice di esempio, al metodo main
manca il modificatore static
:
public class Test {
public void main(String[] args){
System.out.println("Hello, World!");
}
}
Quando compili ed esegui il programma, si verifica il seguente errore perché il metodo main
non è 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)
vuoto
Ogni metodo Java deve fornire il tipo restituito. Il tipo restituito dal metodo Java main
è void
perché non restituisce nulla. Quando il metodo main
ha terminato l'esecuzione, il programma Java termina, quindi non c'è bisogno di un oggetto restituito. Nel seguente codice di esempio, il metodo main
tenta di restituire qualcosa quando il tipo restituito è void
:
public class Test {
public static void main(String[] args){
return 0;
}
}
Quando compili il programma, si verifica il seguente errore perché Java non si aspetta un valore restituito quando il tipo restituito è void
:
- javac Test.java
OutputTest.java:5: error: incompatible types: unexpected return value
return 0;
^
1 error
principale
Il metodo Java main
è sempre denominato main
. Quando un programma Java si avvia, cerca sempre il metodo main
. Il codice di esempio seguente mostra un metodo main
rinominato in myMain
:
public class Test {
public static void myMain(String[] args){
System.out.println("Hello, World!");
}
}
Quando compili ed esegui il programma, si verifica il seguente errore perché JRE non riesce a trovare il metodo main
nella classe:
- 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
Stringa[] argomenti
Il metodo Java main
accetta un singolo argomento di tipo String
array. Ogni stringa nell'array è un argomento della riga di comando. È possibile utilizzare gli argomenti della riga di comando per influenzare il funzionamento del programma o per passare informazioni al programma in fase di esecuzione. Il codice di esempio seguente mostra come stampare gli argomenti della riga di comando immessi quando si esegue il programma:
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 della riga di comando separati da spazi, gli argomenti vengono stampati nel terminale:
- javac Test.java
- java Test 1 2 3 "Testing the main method"
Output1
2
3
Testing the main method
Conclusione
In questo articolo hai imparato a conoscere ogni componente del metodo Java main
. Continua il tuo apprendimento con altri tutorial Java.