main() metodas yra kiek­vie­nos Java programos pradžioje ir pabaigoje. Vykdymo metu at­si­žvel­gia­ma tik į jo taikymo srityje esančius teiginius. Todėl labai svarbu atkreipti dėmesį į kiekvieną metodo sintaksės detalę. Jei ji yra ne­tei­sin­ga, programa nebus vykdoma.

Kas yra main() metodas Java kalboje?

Nesvarbu, kokį projektą norite įgy­ven­din­ti naudojant prog­ra­ma­vi­mo kalbą ar kokį glaustą ar išsamų kodą tam naudojate, Java kalboje kiekviena programa prasideda nuo main() metodo. Jei jis nėra pri­ei­na­mas, kodas negali būti vykdomas. Prieš per­duo­dant jį main(), Java Virtual Machine (JVM) įkeliama į atmintį ir kodas kom­pi­liuo­ja­mas. Atlikus šiuos veiksmus, kodas pa­tik­ri­na­mas naudojant Java main() metodą. Tada jis, tikimasi, bus teisingai vykdomas. Iš esmės taip pat galima naudoti kelis iš šių metodų, tačiau mak­si­ma­lus skaičius yra vienas pag­rin­di­nis metodas vienai klasei.

Kokia yra Java metodo main() sintaksė?

Java main() metodo sintaksė visada yra ta pati. Ji susideda iš kelių svarbių dalių ir atrodo taip:

public static void main(String[] args)
java

Šie kom­po­nen­tai atlieka šias funkcijas:

  • public: Šis kom­po­nen­tas užtikrina, kad klasė taip pat būtų prieinama iš išorės.
  • static: Ši dalis dekla­ruo­ja metodą kaip statinį, o tai reiškia, kad jis gali eg­zis­tuo­ti be iš anksto sukurto konk­re­čios klasės objekto.
  • void: Tai užtikrina, kad main() metodas Java kalboje neturi grąžinti vertės. main: Tai yra tai, ką Java Virtual Machine naudoja metodui iden­ti­fi­kuo­ti, kai vykdo programą.
  • String[] args: Tai yra masyvas, kuriame saugomi ir gaunami ko­man­di­nės eilutės ar­gu­men­tai.

Kodėl main() atskiri kom­po­nen­tai yra svarbūs?

Norėdami geriau suprasti, kaip veikia Java main() metodas ir kodėl visi kom­po­nen­tai yra tokie svarbūs, to­les­niuo­se skyriuose juos ap­žvelg­si­me atskirai. Svar­biau­sia, pa­ro­dy­si­me, kas atsitinka, jei trūksta dalies parašo. Tam pa­si­rink­si­me labai paprastą kodo pavyzdį, kurį išvesime naudodami Java komandą System.out.println.

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

Kai vykdysite šį kodą, gausite tokį rezultatą:

Here is your sample text.
java

public

public veikia kaip prieigos spe­ci­fi­ka­to­rius ir sig­na­li­zuo­ja Java vir­tu­aliai mašinai, kur vykdoma ati­tin­ka­ma programa. Yra ir kitų prieigos mo­di­fi­ka­to­rių, pvz., nu­ma­ty­ta­sis, privatus ir ap­sau­go­tas. Tačiau, jei juos naudosite su main() metodu Java, gausite klaidos pranešimą:

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

Ati­tin­ka­mas klausimas yra:

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

Šis klaidos pra­ne­ši­mas reiškia, kad nėra viešos prieigos prie metodo.

static

Raktinis žodis static pa­tvir­ti­na, kad nau­do­ja­mas metodas yra statinis. Tai reiškia, kad jis gali būti nau­do­ja­mas ne­pri­klau­so­mai nuo klasės instancų. Jei pa­ša­lin­si­te šį kom­po­nen­tą, kodas atrodys taip:

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

Čia taip pat gaunate klaidos pranešimą:

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

void

void yra raktinis žodis, kuris nurodo, kad main() metodas Java kalboje neturėtų grąžinti jokių verčių. Kadangi main() yra programos Java kalboje pradžia ir pabaiga, at­vaiz­da­vi­mas yra ne­rei­ka­lin­gas. Štai kaip atrodo kodas be void:

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

Tai yra klaidos pra­ne­ši­mas, kurį gausite, jei pra­lei­si­te 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

Kiek­vie­nai Java programai JVM pir­miau­sia ieško iden­ti­fi­ka­to­riaus main. Tai nurodo, kur turi prasidėti ir baigtis vykdymas. Kai tik Java main() metodas baigia vykdymą, programa uždaroma. Todėl parašo niekada negalima keisti ar papildyti. Štai pavyzdys, kaip atrodo parašo pa­kei­ti­mas:

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

Kadangi JVM negali rasti iden­ti­fi­ka­to­riaus, ji tie­sio­giai nutrauks programą ir išduos šią klaidos žinutę:

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

String[] args masyvas atitinka java.lang.String klasę ir jame saugomi duomenys, kurie yra išsaugomi kaip styginių reikšmės. Jei šią spe­ci­fi­ka­ci­ją pra­lei­si­te, kodas atrodys taip:

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

Be argumento Java main() metodas negali būti vykdomas. Dėl to vėl gausite šią klaidos žinutę:

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

Kokios yra al­ter­na­ty­vios rašybos?

Čia pateiktas kodo pavyzdys buvo parašytas pagal la­biau­siai pa­pli­tu­sią sintaksę. Tačiau jį galite lengvai pri­tai­ky­ti, kad būtų lengviau suprasti. Pa­vyz­džiui, kvad­ra­ti­nes skliaus­te­les galite įdėti tiesiai po args. Tai atrodytų taip:

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

Ar­gu­men­tus taip pat galite saugoti kaip kintamus ar­gu­men­tus (varargs). Tam reikia naudoti trikampį:

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

e279a09d81cf2d9a80f3ef29e7d04b0b

9355e88a23274d30eaac66bea1050fdd

d08ef900be5f8a1e6a80fab0895b7da2

ffcbdc9a7455426c4bf5f7060e972480

4748e69e1509025f6b105d9f3b402d2d

Go to Main Menu