Main() är startpunkten för JVM för att starta exekvering av ett Java-program. Utan main()-metoden kommer JVM inte att köra programmet. Syntaxen för metoden main() är:
offentlig: Det är en åtkomstspecifikation. Vi bör använda ett publikt nyckelord före main()-metoden så att JVM kan identifiera exekveringspunkten för programmet. Om vi använder private, protected och default före main()-metoden kommer den inte att vara synlig för JVM.
statisk: Du kan göra en metod statisk genom att använda nyckelordet static. Vi bör anropa metoden main() utan att skapa ett objekt. Statiska metoder är metoden som anropar utan att skapa objekten, så vi behöver inte något objekt för att anropa main()-metoden.
tomhet: I Java har varje metod returtypen. Void nyckelord bekräftar kompilatorn att main()-metoden inte returnerar något värde.
main(): Det är en standardsignatur som är fördefinierad i JVM. Det anropas av JVM att exekvera ett program rad för rad och avsluta exekveringen efter att denna metod har slutförts. Vi kan också överbelasta main()-metoden.
Strängarg[]: Main()-metoden accepterar också vissa data från användaren. Den accepterar en grupp strängar, som kallas en strängarray. Den används för att hålla kommandoradsargumenten i form av strängvärden.
main(String args[])
Här är agrs[] arraynamnet, och det är av String-typ. Det betyder att den kan lagra en grupp av strängar. Kom ihåg att den här arrayen också kan lagra en grupp med nummer men endast i form av en sträng. Värden som skickas till main()-metoden kallas argument. Dessa argument lagras i args[]-arrayen, så namnet args[] används vanligtvis för det.
Vad händer om metoden main() skrivs utan String args[]?
Programmet kommer att kompilera, men inte köras, eftersom JVM inte känner igen metoden main(). Kom ihåg att JVM alltid letar efter metoden main() med en array av strängtyp som parameter.
Utförandeprocess
Först exekverar JVM det statiska blocket, sedan exekverar det statiska metoder, och sedan skapar det objektet som behövs av programmet. Slutligen kör den instansmetoderna. JVM exekverar ett statiskt block med högsta prioritet. Det betyder att JVM först går till statiskt block även innan det letar efter main()-metoden i programmet.
Exempel
class Demo { static //static block { System.out.println('Static block'); } public static void main(String args[]) //static method { System.out.println('Static method'); } }
Produktion:
Static block Static method
Vi observerar att JVM först exekverar det statiska blocket, om det finns i programmet. Efter det söker den efter metoden main(). Om main()-metoden inte hittas ger den fel.
Exempel
Ett program som inte har metoden main() ger ett fel vid körning.
class DemoStaticBlock { Static //static block { System.out.println('Static block'); } }
Produktion:
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
Så main()-metoden ska alltid skrivas som:
public static void main(String args[])
Vi kan växla offentligt och statiskt och skriva det så här:
static public void main(String args[])
Vi kan också använda det olika namnet för strängtypens array och skriva det som:
static public void main(String[] x)
Olika sätt att skriva main()-metoden är:
static public void main(String []x) static public void main(String...args)
String...args: Det tillåter metoden att acceptera noll eller flera argument. Det ska finnas exakt tre punkter mellan String och array; annars ger det ett fel.
Exempel
Ett program som inte har någon main()-metod, men som kompilerar och körs framgångsrikt.
abstract class DemoNoMain extends javafx.application.Application { static //static block { System.out.println('Java'); System.exit(0); } }
Produktion:
Java
Överbelastning av main()-metoden
Vi kan också överbelasta main()-metoden. Vi kan definiera valfritt antal main()-metoder i klassen, men metodsignaturen måste vara annorlunda.
Exempel
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); } }
Produktion:
lista java till array
main method invoked 6