Metoden main() finnes i begynnelsen og slutten av hvert program i Java. Bare setninger som ligger innenfor dens omfang tas i betraktning under utførelsen. Derfor er det så viktig å være oppmerksom på hver minste detalj i metodens syntaks. Hvis den er feil, vil ikke programmet bli utført.

Hva er main() i Java?

Uansett hvilket prosjekt du ønsker å implementere med programmeringsspråket, eller hvilken kortfattet eller omfattende kode du bruker til det, starter alle applikasjoner i Java med metoden main(). Hvis den ikke er tilgjengelig, kan ikke koden kjøres. Før dette sendes til main(), lastes Java Virtual Machine (JVM) inn i minnet og koden kompileres. Når disse trinnene er fullført, sjekkes koden med main() metoden. Deretter kjøres den forhåpentligvis riktig. I prinsippet er det også mulig å bruke flere av disse metodene, hvor maksimalt én hovedmetode per klasse.

Hva er syntaksen til Java-metoden main()?

Syntaksen til Java-metoden main() er alltid den samme. Den består av flere viktige deler og ser slik ut:

public static void main(String[] args)
java

Disse komponentene oppfyller følgende funksjoner:

  • public: Denne komponenten sikrer at en klasse også kan nås fra utsiden.
  • static: Denne delen erklærer metoden som statisk, noe som betyr at den kan eksistere uten at et objekt av en bestemt klasse er opprettet på forhånd.
  • void: Dette sikrer at metoden main() i Java ikke trenger å returnere en verdi. main: Dette er det Java Virtual Machine bruker til å identifisere metoden når den kjører et program.
  • String[] args: Dette er en matrise hvor kommandolinjeargumentene lagres og mottas.

Hvorfor er de enkelte komponentene i main() viktige?

For å bedre forstå hvordan main() -metoden fungerer og hvorfor alle komponentene er så viktige, skal vi se på dem hver for seg i de følgende avsnittene. Viktigst av alt skal vi vise deg hva som skjer hvis en del av signaturen mangler. For å gjøre dette velger vi et veldig enkelt kodeeksempel, som vi skal skrive ut med Java-kommandoen System.out.println.

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

Når du kjører denne koden, får du følgende utdata:

Here is your sample text.
java

public

public fungerer som en tilgangsspesifikator og signaliserer til Java Virtual Machine hvor det tilsvarende programmet kjøres. Det finnes andre tilgangsmodifikatorer, som default, private og protected. Hvis du bruker disse sammen med main() i Java, vil du imidlertid få en feilmelding:

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

Det tilsvarende problemet er:

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

Denne feilmeldingen indikerer at det ikke er offentlig tilgang til metoden.

static

Nøkkelordet static bekrefter at metoden som brukes er statisk. Dette betyr at den kan brukes uavhengig av klasseinstanser. Hvis du fjerner denne komponenten, vil koden se slik ut:

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

Her får du også en feilmelding:

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

void

void er et nøkkelord som angir at main() i Java ikke skal returnere noen verdier. Siden main() er start- og sluttpunktet for et program i Java, er rendering unødvendig. Slik ser koden ut uten void:

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

Dette er feilmeldingen du får hvis du utelater 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

For hvert program i Java søker JVM først etter identifikatoren main. Dette angir hvor utførelsen skal begynne og slutte. Så snart metoden main() i Java fullfører utførelsen, avsluttes programmet. Dette er grunnen til at signaturen aldri bør endres eller legges til. Her er et eksempel på hvordan en endring i signaturen ser ut:

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

Siden JVM ikke finner identifikatoren, vil den avslutte programmet direkte og vise følgende feilmelding:

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 tilsvarer java.lang.String-klassen og inneholder data som den lagrer som strengverdier. Hvis du utelater denne spesifikasjonen, vil koden se slik ut:

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

Uten argumentet kan ikke Java main() -metoden utføres. Som et resultat vil du motta følgende feilmelding igjen:

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

Hvilke alternative stavemåter finnes det?

Kodeeksemplet som vises her, er skrevet i henhold til den vanligste syntaksen. Du kan imidlertid enkelt tilpasse det for å få en bedre oversikt. Du kan for eksempel plassere firkantparentesene rett etter args. Slik vil det se ut:

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

Du kan også lagre argumenter som variable argumenter (varargs). For å gjøre dette må du bruke tre prikker:

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

e279a09d81cf2d9a80f3ef29e7d04b0b

9355e88a23274d30eaac66bea1050fdd

d08ef900be5f8a1e6a80fab0895b7da2

ffcbdc9a7455426c4bf5f7060e972480

4748e69e1509025f6b105d9f3b402d2d

Go to Main Menu