A main() metódus minden Java program elején és végén található. A végrehajtás során csak a hatókörén belül lévő utasításokat veszi figyelembe. Ezért olyan fontos, hogy a metódus szintaxisának minden apró részletére figyeljünk. Ha helytelen, a program nem fog végrehajtódni.

Mi az a main() módszer Java-ban?

Függetlenül attól, hogy milyen projektet szeretne megvalósítani a programozási nyelvvel, vagy milyen tömör vagy kiterjedt kódot használ ehhez, a Java-ban minden alkalmazás a main() metódussal indul. Ha ez nem áll rendelkezésre, a kód nem futtatható. Mielőtt ez átkerülne main(), a Java virtuális gép (JVM) betöltődik a memóriába, és a kód lefordításra kerül. Miután ezek a lépések befejeződtek, a kód a Java main() metódussal ellenőrizésre kerül. Ezután remélhetőleg helyesen futtatható. Elvileg több ilyen metódus is használható, de osztályonként legfeljebb egy fő metódus lehet.

Mi a Java main() metódus szintaxisa?

A Java main() metódus szintaxisa mindig ugyanaz. Több fontos részből áll, és így néz ki:

public static void main(String[] args)
java

Ezek az alkatrészek a következő funkciókat látják el:

  • public: Ez a komponens biztosítja, hogy egy osztály külső forrásokból is elérhető legyen.
  • static: Ez a rész a metódust statikusnak nyilvánítja, ami azt jelenti, hogy létezhet anélkül, hogy előzetesen létrehoztak volna egy adott osztály objektumát.
  • void: Ez biztosítja, hogy a Java main() metódusának ne kelljen értéket visszaadnia. main: Ezt használja a Java virtuális gép a metódus azonosítására, amikor egy programot futtat.
  • String[] args: Ez egy tömb, amelyben a parancssori argumentumok tárolódnak és fogadódnak.

Miért fontosak a main() egyes összetevői?

Ahhoz, hogy jobban megértsük, hogyan működik a Java main() módszer, és miért olyan fontosak az összes komponensek, a következő szakaszokban egyenként megvizsgáljuk őket. A legfontosabb, hogy megmutatjuk, mi történik, ha a szignatúra egy része hiányzik. Ehhez egy nagyon egyszerű kódpéldát választunk, amelyet a Java parancs System.out.println segítségével adunk ki.

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

A kód végrehajtásakor a következő eredményt kapja:

Here is your sample text.
java

public

public hozzáférési specifikátorként működik, és jelzi a Java virtuális gépnek, hogy hol futtatja a megfelelő programot. Vannak más hozzáférési módosítók is, például a default, a private és a protected. Ha azonban ezeket a main() metódussal használja Java-ban, hibaüzenetet kap:

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

A megfelelő kérdés:

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

Ez a hibaüzenet azt jelzi, hogy a módszerhez nincs nyilvános hozzáférés.

static

A static kulcsszó megerősíti, hogy a használt módszer statikus. Ez azt jelenti, hogy osztálypéldányoktól függetlenül használható. Ha ezt a komponenst eltávolítjuk, a kód így fog kinézni:

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

Itt is hibaüzenet jelenik meg:

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

void

void egy kulcsszó, amely meghatározza, hogy a Java main() metódusa nem adhat vissza értéket. Mivel main() a Java programok kezdő- és végpontja, a renderelés felesleges. Így néz ki a kód void nélkül:

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

Ez az a hibaüzenet, amelyet akkor kapsz, ha kihagyod void:

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

Minden Java program esetében a JVM először a main azonosítót keresi. Ez jelzi, hol kell megkezdeni és befejezni a végrehajtást. Amint a Java main() metódusa befejezi a végrehajtást, a program leáll. Ezért soha nem szabad megváltoztatni vagy kiegészíteni az aláírást. Íme egy példa arra, hogyan néz ki az aláírás megváltoztatása:

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

Mivel a JVM nem találja az azonosítót, közvetlenül leállítja a programot, és a következő hibaüzenetet jeleníti meg:

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

A String[] args tömb a java.lang.String osztálynak felel meg, és olyan adatokat tartalmaz, amelyeket karakterláncértékekként tárol. Ha ezt a specifikációt kihagyja, a kód a következőképpen fog kinézni:

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

Az argumentum nélkül a Java main() metódus nem futtatható. Ennek eredményeként ismét a következő hibaüzenet jelenik meg:

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

Milyen alternatív írásmódok léteznek?

Az itt bemutatott kódpélda a leggyakoribb szintaxis szerint íródott. Azonban könnyen átalakíthatja, hogy jobb áttekinthetőséget biztosítson magának. Például a szögletes zárójeleket közvetlenül args után helyezheti el. Így fog kinézni:

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

Az argumentumokat változó argumentumokként (varargs) is tárolhatja. Ehhez három pontot kell használnia:

public static void main(String...args) { }
java
Ugrás a főmenübe