logo

Java main() metode

Main() er utgangspunktet for JVM for å starte kjøringen av et Java-program. Uten main()-metoden vil ikke JVM kjøre programmet. Syntaksen til main()-metoden er:

Java hovedmetode

offentlig: Det er en tilgangsspesifikasjoner. Vi bør bruke et offentlig nøkkelord før main()-metoden slik at JVM kan identifisere utførelsespunktet til programmet. Hvis vi bruker private, protected og default før main()-metoden, vil den ikke være synlig for JVM.

statisk: Du kan gjøre en metode statisk ved å bruke nøkkelordet static. Vi bør kalle main()-metoden uten å lage et objekt. Statiske metoder er metoden som påkaller uten å lage objektene, så vi trenger ikke noe objekt for å kalle main()-metoden.

tomrom: I Java har hver metode returtypen. Void nøkkelord erkjenner kompilatoren at main()-metoden ikke returnerer noen verdi.

hoved(): Det er en standardsignatur som er forhåndsdefinert i JVM. Det kalles av JVM å utføre et program linje for linje og avslutte utførelsen etter fullføring av denne metoden. Vi kan også overbelaste main()-metoden.

Stringarg[]: Main()-metoden godtar også noen data fra brukeren. Den aksepterer en gruppe strenger, som kalles en strengmatrise. Den brukes til å holde kommandolinjeargumentene i form av strengverdier.

 main(String args[]) 

Her er agrs[] arraynavnet, og det er av strengtype. Det betyr at den kan lagre en gruppe strenger. Husk at denne matrisen også kan lagre en gruppe tall, men kun i form av en streng. Verdier som sendes til main()-metoden kalles argumenter. Disse argumentene er lagret i args[]-array, så navnet args[] brukes vanligvis for det.

Hva skjer hvis main()-metoden skrives uten String args[]?

Programmet vil kompilere, men ikke kjøre, fordi JVM ikke vil gjenkjenne main()-metoden. Husk at JVM alltid ser etter main()-metoden med en string type array som parameter.

Utførelsesprosess

Først utfører JVM den statiske blokken, deretter utfører den statiske metoder, og deretter oppretter den objektet som trengs av programmet. Til slutt utfører den instansmetodene. JVM utfører en statisk blokk med høyeste prioritet. Det betyr at JVM først går til statisk blokk selv før den ser etter main()-metoden i programmet.

Eksempel

 class Demo { static //static block { System.out.println('Static block'); } public static void main(String args[]) //static method { System.out.println('Static method'); } } 

Produksjon:

 Static block Static method 

Vi observerer at JVM først kjører den statiske blokken, hvis den er til stede i programmet. Etter det søker den etter main()-metoden. Hvis main()-metoden ikke blir funnet, gir den feil.

Eksempel

Et program som ikke har main()-metoden gir en feil under kjøring.

 class DemoStaticBlock { Static //static block { System.out.println('Static block'); } } 

Produksjon:

 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 skal alltid skrives som:

 public static void main(String args[]) 

Vi kan bytte offentlig og statisk og skrive det som følger:

 static public void main(String args[]) 

Vi kan også bruke det forskjellige navnet for arrayen av strengtype og skrive det som:

 static public void main(String[] x) 

Ulike måter å skrive main()-metoden på er:

 static public void main(String []x) static public void main(String...args) 

String...args: Den lar metoden godta null eller flere argumenter. Det skal være nøyaktig tre prikker mellom streng og array; ellers gir det en feil.

Eksempel

Et program som ikke har noen main()-metode, men kompilerer og kjører vellykket.

 abstract class DemoNoMain extends javafx.application.Application { static //static block { System.out.println('Java'); System.exit(0); } } 

Produksjon:

 Java 

Overbelastning av main()-metoden

Vi kan også overbelaste main()-metoden. Vi kan definere et hvilket som helst antall main()-metoder i klassen, men metodesignaturen må være forskjellig.

Eksempel

 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); } } 

Produksjon:

k nærmeste nabo-algoritme
 main method invoked 6