De main() staat aan het begin en einde van elk programma in Java. Alleen sta­te­ments die binnen het bereik ervan vallen, worden tijdens de uit­voe­ring in aan­mer­king genomen. Daarom is het zo be­lang­rijk om op elk detail van de syntaxis van de methode te letten. Als deze onjuist is, wordt het programma niet uit­ge­voerd.

Wat is de main() -methode in Java?

Ongeacht welk project u met de pro­gram­meer­taal wilt uitvoeren of welke beknopte of uit­ge­brei­de code u daarvoor gebruikt, in Java begint elke toe­pas­sing met de main(). Als deze niet be­schik­baar is, kan de code niet worden uit­ge­voerd. Voordat dit wordt door­ge­ge­ven aan main(), wordt de Java Virtual Machine (JVM) in het geheugen geladen en wordt de code ge­com­pi­leerd. Zodra deze stappen zijn voltooid, wordt de code ge­con­tro­leerd met de main(). Ver­vol­gens wordt deze hopelijk correct uit­ge­voerd. In principe is het ook mogelijk om meerdere van deze methoden te gebruiken, waarbij het maximum één hoofd­me­tho­de per klasse is.

Wat is de syntaxis van de Java-methode main()?

De syntaxis van main() van Java is altijd hetzelfde. Deze bestaat uit meerdere be­lang­rij­ke on­der­de­len en ziet er als volgt uit:

public static void main(String[] args)
java

Deze com­po­nen­ten vervullen de volgende functies:

  • public: Dit onderdeel zorgt ervoor dat een klasse ook van buitenaf toe­gan­ke­lijk is.
  • static: Dit deel verklaart de methode als statisch, wat betekent dat deze kan bestaan zonder dat er vooraf een object van een spe­ci­fie­ke klasse is aan­ge­maakt.
  • void: Dit zorgt ervoor dat de main() in Java geen waarde hoeft terug te geven. main: Dit is wat Java Virtual Machine gebruikt om de methode te iden­ti­fi­ce­ren wanneer het een programma uitvoert.
  • String[] args: Dit is een array waarin de com­man­do­re­ge­lar­gu­men­ten worden op­ge­sla­gen en ontvangen.

Waarom zijn de af­zon­der­lij­ke com­po­nen­ten van main() be­lang­rijk?

Om beter te begrijpen hoe de Java main() werkt en waarom alle com­po­nen­ten zo be­lang­rijk zijn, zullen we ze in de volgende pa­ra­gra­fen af­zon­der­lijk bekijken. Het be­lang­rijk­ste is dat we u laten zien wat er gebeurt als een deel van de hand­te­ke­ning ontbreekt. Hiervoor kiezen we een heel eenvoudig co­de­voor­beeld, dat we met het Java-commando System.out.println zullen uitvoeren.

public class main {
	public static void main(String[] args) {
		System.out.println("Here is your sample text.");
	}
}
java

Wanneer u deze code uitvoert, krijgt u de volgende uitvoer:

Here is your sample text.
java

public

public fungeert als een toe­gangs­spe­ci­fi­ca­tie en geeft aan de Java Virtual Machine door waar het bij­be­ho­ren­de programma wordt uit­ge­voerd. Er zijn nog andere toe­gangs­mo­di­fi­ca­to­ren, zoals default, private en protected. Als u deze echter gebruikt met de main() in Java, krijgt u een fout­mel­ding:

public class main {
	private static void main(String[] args) {
		System.out.println("Here is your sample text.");
	}
}
java

De bij­be­ho­ren­de kwestie is:

Error: Main method not found in class, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
java

Deze fout­mel­ding geeft aan dat er geen openbare toegang tot de methode is.

static

Het sleu­tel­woord static bevestigt dat de gebruikte methode statisch is. Dit betekent dat deze on­af­han­ke­lijk van klasse-in­stan­ties kan worden gebruikt. Als u dit onderdeel ver­wij­dert, ziet de code er als volgt uit:

public class main {
	public void main(String[] args) {
		System.out.println("Here is your sample text.");
	}
}
java

Hier krijgt u ook een fout­mel­ding:

Error: Main method is not static in class test, please define the main method as:
public static void main(String[] args)
java

void

void is een trefwoord dat aangeeft dat de main() in Java geen waarden mag re­tour­ne­ren. Aangezien main() het begin- en eindpunt van een programma in Java is, is weergave overbodig. Zo ziet de code eruit zonder void:

public class main {
	public static main(String[] args) {
		System.out.println("Here is your sample text.");
	}
}
java

Dit is de fout­mel­ding die u krijgt als u void weglaat:

Error: Main method must return a value of type void in class Main, please define the main method as:
public static void main(String[] args)
java

main

Voor elk programma in Java zoekt de JVM eerst naar de iden­ti­fi­ca­tie­co­de main. Deze geeft aan waar de uit­voe­ring moet beginnen en eindigen. Zodra de methode main() in Java is uit­ge­voerd, wordt het programma beëindigd. Daarom mag de hand­te­ke­ning nooit worden gewijzigd of aangevuld. Hier volgt een voorbeeld van hoe een wijziging in de hand­te­ke­ning eruitziet:

public class main {
	public static void replacementMain(String[] args) {
		System.out.println("Here is your sample text.");
	}
}
java

Aangezien de JVM de iden­ti­fi­ca­tie niet kan vinden, zal het programma direct worden beëindigd en de volgende fout­mel­ding geven:

Error: Main method not found in class, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
java

String[] args

De array String[] args komt overeen met de klasse java.lang.String en bevat gegevens die als te­ken­reeks­waar­den worden op­ge­sla­gen. Als u deze spe­ci­fi­ca­tie weglaat, ziet de code er als volgt uit:

public class main {
	public static void main() {
		System.out.println("Here is your sample text.");
	}
}
java

Zonder het argument kan de Java main() niet worden uit­ge­voerd. Als gevolg hiervan krijgt u opnieuw de volgende fout­mel­ding:

Error: Main method not found in class, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
java

Welke al­ter­na­tie­ve spel­lin­gen zijn er?

Het hier getoonde co­de­voor­beeld is ge­schre­ven volgens de meest gangbare syntaxis. U kunt het echter eenvoudig aanpassen om uzelf een beter overzicht te geven. U kunt bij­voor­beeld de vierkante haken direct achter args plaatsen. Zo zou het er dan uitzien:

public static void main(String args[]) { }
java

Je kunt ar­gu­men­ten ook opslaan als variabele ar­gu­men­ten (varargs). Hiervoor moet je een ellips gebruiken:

public static void main(String...args) { }
java
Ga naar hoofdmenu