Main () yra JVM pradžios taškas pradėti Java programos vykdymą. Be main() metodo JVM nevykdys programos. Metodo main() sintaksė yra tokia:
viešas: Tai prieigos specifikatorius. Prieš main() metodą turėtume naudoti viešąjį raktinį žodį, kad JVM galėtų nustatyti programos vykdymo tašką. Jei prieš main() metodą naudosime privatų, apsaugotą ir numatytąjį, jis nebus matomas JVM.
statinis: Metodą galite padaryti statinį naudodami raktinį žodį statinis. Turėtume iškviesti main() metodą nesukūrę objekto. Statiniai metodai yra metodas, kuris iškviečiamas nesukūrus objektų, todėl mums nereikia jokio objekto, kad iškviestume pagrindinį () metodą.
tuštuma: Java programoje kiekvienas metodas turi grąžinimo tipą. Void raktažodis patvirtina kompiliatorių, kad main() metodas negrąžina jokios reikšmės.
pagrindinis (): Tai numatytasis parašas, kuris iš anksto nustatytas JVM. JVM jį iškviečia eilutę po eilutės vykdyti programą ir užbaigti vykdymą užbaigus šį metodą. Taip pat galime perkrauti main() metodą.
Styginių args[]: Pagrindinis() metodas taip pat priima kai kuriuos duomenis iš vartotojo. Jis priima eilučių grupę, kuri vadinama eilučių masyvu. Jis naudojamas komandų eilutės argumentams laikyti eilutės reikšmių pavidalu.
main(String args[])
Čia agrs[] yra masyvo pavadinimas ir jis yra eilutės tipo. Tai reiškia, kad jis gali saugoti eilučių grupę. Atminkite, kad šis masyvas taip pat gali saugoti skaičių grupę, bet tik eilutės pavidalu. Vertės, perduotos main() metodui, vadinamos argumentais. Šie argumentai saugomi args[] masyve, todėl dažniausiai tam naudojamas pavadinimas args[].
Kas atsitiks, jei main() metodas parašytas be String args[]?
Programa kompiliuos, bet nepaleis, nes JVM neatpažins main() metodo. Atminkite, kad JVM visada ieško main() metodo, kurio parametras yra eilutės tipo masyvas.
Vykdymo procesas
Pirmiausia JVM vykdo statinį bloką, tada vykdo statinius metodus, o tada sukuria programai reikalingą objektą. Galiausiai jis vykdo egzempliorių metodus. JVM vykdo statinį bloką aukščiausio prioriteto pagrindu. Tai reiškia, kad JVM pirmiausia pereina į statinį bloką, net prieš tai programoje ieškodamas main() metodo.
Pavyzdys
class Demo { static //static block { System.out.println('Static block'); } public static void main(String args[]) //static method { System.out.println('Static method'); } }
Išvestis:
Static block Static method
Pastebime, kad JVM pirmiausia vykdo statinį bloką, jei jis yra programoje. Po to jis ieško main() metodo. Jei pagrindinis() metodas nerastas, jis pateikia klaidą.
Pavyzdys
Programa, kuri neturi main() metodo, pateikia klaidą vykdymo metu.
class DemoStaticBlock { Static //static block { System.out.println('Static block'); } }
Išvestis:
Error: Main method not found in the class Demo, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application
Taigi pagrindinis () metodas visada turėtų būti parašytas taip:
public static void main(String args[])
Galime sukeisti viešąjį ir statinį ir parašyti taip:
static public void main(String args[])
Taip pat galime naudoti skirtingą eilutės tipo masyvo pavadinimą ir parašyti jį kaip:
static public void main(String[] x)
Skirtingi main() metodo rašymo būdai yra šie:
static public void main(String []x) static public void main(String...args)
Styga...args: Tai leidžia metodui priimti nulį arba kelis argumentus. Tarp eilutės ir masyvo turi būti tiksliai trys taškai; kitu atveju pateikia klaidą.
Pavyzdys
Programa, kuri neturi main() metodo, bet yra kompiliuojama ir sėkmingai veikia.
abstract class DemoNoMain extends javafx.application.Application { static //static block { System.out.println('Java'); System.exit(0); } }
Išvestis:
Java
Main() metodo perkrova
Taip pat galime perkrauti main() metodą. Klasėje galime apibrėžti bet kokį main() metodo skaičių, tačiau metodo parašas turi skirtis.
Pavyzdys
class OverloadMain { public static void main(int a) //overloaded main method { System.out.println(a); } public static void main(String args[]) { System.out.println('main method incoked'); main(6); } }
Išvestis:
kaip rasti paslėptas programas „Android“.
main method invoked 6