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
:
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
:
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:
- 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
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
:
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
:
- 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
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
:
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
:
- javac Test.java
OutputTest.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
:
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:
- 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
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:
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:
- javac Test.java
- java Test 1 2 3 "Testing the main method"
Output1
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.