Introductie
De Java main
-methode is meestal de eerste methode die je leert wanneer je begint met programmeren in Java omdat het het startpunt is voor het uitvoeren van een Java-programma. De main
-methode kan code bevatten om uit te voeren of om andere methoden aan te roepen, en deze kan worden geplaatst in elke klasse die deel uitmaakt van een programma. Meer complexe programma’s hebben meestal een klasse die alleen de main
-methode bevat. De klasse die de main
-methode bevat, kan elke naam hebben, hoewel je de klasse meestal gewoon Main
kunt noemen.
In de voorbeelden die volgen, wordt de klasse die de main
-methode bevat, Test
genoemd:
public class Test {
public static void main(String[] args){
System.out.println("Hello, World!");
}
}
In dit artikel leer je wat elk onderdeel van de main
-methode betekent.
Syntaxis van de Java Main Methode
De syntaxis van de main
-methode is altijd:
public static void main(String[] args){
// enige code
}
Je kunt alleen de naam van de String
-array argument wijzigen. Bijvoorbeeld, je kunt args
wijzigen naar myStringArgs
. Het String
-array argument kan worden geschreven als String... args
of String args[]
.
public
Het toegangsmodifier van de main
-methode moet public
zijn, zodat de JRE toegang heeft tot en deze methode kan uitvoeren. Als een methode niet openbaar is, is de toegang beperkt. In het volgende voorbeeldcode ontbreekt het public
-toegangsmodifier voor de main
-methode:
public class Test {
static void main(String[] args){
System.out.println("Hello, World!");
}
}
Als je het programma compileert en uitvoert, treedt de volgende fout op omdat de main
-methode niet openbaar is en de JRE deze niet kan vinden:
- 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
static
Wanneer het Java-programma start, is er geen object van de klasse aanwezig. De main
-methode moet static
zijn, zodat de JVM de klasse in het geheugen kan laden en de main
-methode kan aanroepen zonder eerst een instantie van de klasse te maken. In het volgende voorbeeldcode ontbreekt de static
-modifier voor de main
-methode:
public class Test {
public void main(String[] args){
System.out.println("Hello, World!");
}
}
Als je het programma compileert en uitvoert, treedt de volgende fout op omdat de main
-methode niet static
is:
- 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
Elke Java-methode moet het retourtype specificeren. Het retourtype van de Java main
-methode is void
, omdat deze niets retourneert. Wanneer de main
-methode is voltooid, wordt het Java-programma afgesloten, dus er is geen noodzaak voor een geretourneerd object. In het volgende voorbeeld probeert de main
-methode iets terug te geven terwijl het retourtype void
is:
public class Test {
public static void main(String[] args){
return 0;
}
}
Als je het programma compileert, treedt de volgende fout op omdat Java geen retourwaarde verwacht wanneer het retourtype void
is:
- javac Test.java
OutputTest.java:5: error: incompatible types: unexpected return value
return 0;
^
1 error
main
De Java main
-methode heeft altijd de naam main
. Wanneer een Java-programma start, zoekt het altijd naar de main
-methode. In het volgende voorbeeldcode wordt een main
-methode hernoemd naar myMain
:
public class Test {
public static void myMain(String[] args){
System.out.println("Hello, World!");
}
}
Als je het programma compileert en uitvoert, treedt de volgende fout op omdat de JRE de main
-methode niet kan vinden in de klasse:
- 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
Java main
-methode accepteert een enkel argument van het type String
-array. Elk stringelement in de array is een commandoregelargument. Je kunt commandoregelargumenten gebruiken om de werking van het programma te beïnvloeden of informatie door te geven aan het programma tijdens runtime. Het volgende voorbeeld laat zien hoe je de commandoregelargumenten afdrukt die je invoert bij het uitvoeren van het programma:
public class Test {
public static void main(String[] args){
for(String s : args){
System.out.println(s);
}
}
}
Wanneer je het programma compileert en vervolgens uitvoert met enkele commandoregelargumenten gescheiden door spaties, worden de argumenten afgedrukt in het terminalvenster:
- javac Test.java
- java Test 1 2 3 "Testing the main method"
Output1
2
3
Testing the main method
Conclusie
In dit artikel heb je kennisgemaakt met elk onderdeel van de Java main
-methode. Ga verder met leren aan de hand van meer Java tutorials.