Sådan bruges Java-metoden main():
Metoden main() findes i begyndelsen og slutningen af hvert program i Java. Kun sætninger, der ligger inden for dens rækkevidde, tages i betragtning under udførelsen. Derfor er det så vigtigt at være opmærksom på alle detaljer i metodens syntaks. Hvis den er forkert, vil programmet ikke blive udført.
Hvad er main() i Java?
Uanset hvilket projekt du ønsker at implementere med programmeringssproget, eller hvilken kortfattet eller omfattende kode du bruger til det, starter alle applikationer i Java med metoden main(). Hvis den ikke er tilgængelig, kan koden ikke udføres. Inden dette videregives til main(), indlæses Java Virtual Machine (JVM) i hukommelsen, og koden kompileres. Når disse trin er gennemført, kontrolleres koden med main() metoden. Derefter udføres den forhåbentlig korrekt. I princippet er det også muligt at bruge flere af disse metoder, hvor det maksimale antal er én hovedmetode pr. klasse.
Hvad er syntaksen for Java-metoden main()?
Syntaksen i Java’s main() metode er altid den samme. Den består af flere vigtige dele og ser således ud:
public static void main(String[] args)javaDisse komponenter udfører følgende funktioner:
public: Denne komponent sikrer, at en klasse også kan tilgås udefra.static: Denne del erklærer metoden som statisk, hvilket betyder, at den kan eksistere uden at der på forhånd er oprettet et objekt af en bestemt klasse.void: Dette sikrer, at metodenmain()i Java ikke behøver at returnere en værdi.main: Dette er det, Java Virtual Machine bruger til at identificere metoden, når den udfører et program.String[] args: Dette er en matrix, hvor kommandolinjeargumenterne gemmes og modtages.
Hvorfor er de enkelte komponenter i main() vigtige?
For bedre at forstå, hvordan main() -metoden fungerer, og hvorfor alle komponenterne er så vigtige, vil vi se nærmere på dem hver for sig i de følgende afsnit. Vigtigst af alt vil vi vise dig, hvad der sker, hvis en del af signaturen mangler. Til dette vil vi vælge et meget simpelt kodeeksempel, som vi vil udskrive med Java-kommandoen System.out.println.
public class main {
public static void main(String[] args) {
System.out.println("Here is your sample text.");
}
}javaNår du udfører denne kode, får du følgende output:
Here is your sample text.javapublic
public fungerer som en adgangsspecifikator og signalerer til Java Virtual Machine , hvor det tilsvarende program udføres. Der findes andre adgangsmodifikatorer, såsom default, private og protected. Hvis du bruger disse sammen med main() i Java, vil du dog modtage en fejlmeddelelse:
public class main {
private static void main(String[] args) {
System.out.println("Here is your sample text.");
}
}javaDet tilsvarende problem 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.ApplicationjavaDenne fejlmeddelelse angiver, at der ikke er offentlig adgang til metoden.
static
Nøgleordet static bekræfter, at den anvendte metode er statisk. Det betyder, at den kan bruges uafhængigt af klasseinstanser. Hvis du fjerner denne komponent, vil koden se således ud:
public class main {
public void main(String[] args) {
System.out.println("Here is your sample text.");
}
}javaHer får du også en fejlmeddelelse:
Error: Main method is not static in class test, please define the main method as:
public static void main(String[] args)javavoid
void er et nøgleord, der angiver, at main() i Java ikke skal returnere nogen værdier. Da main() er start- og slutpunktet for et program i Java, er rendering unødvendig. Sådan ser koden ud uden void:
public class main {
public static main(String[] args) {
System.out.println("Here is your sample text.");
}
}javaDette er den fejlmeddelelse, du får, hvis du udelader 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)javamain
For hvert program i Java søger JVM først efter identifikatoren main. Dette angiver, hvor udførelsen skal begynde og slutte. Så snart metoden main() i Java har afsluttet sin udførelse, afsluttes programmet. Derfor bør signaturen aldrig ændres eller tilføjes. Her er et eksempel på, hvordan en ændring af signaturen ser ud:
public class main {
public static void replacementMain(String[] args) {
System.out.println("Here is your sample text.");
}
}javaDa JVM ikke kan finde identifikatoren, afslutter den programmet direkte og viser følgende fejlmeddelelse:
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.ApplicationjavaString[] args
String[] args svarer til klassen java.lang.String og indeholder data, som den gemmer som strengværdier. Hvis du udelader denne specifikation, vil koden se således ud:
public class main {
public static void main() {
System.out.println("Here is your sample text.");
}
}javaUden argumentet kan Java main() -metoden ikke udføres. Som følge heraf vil du igen modtage følgende fejlmeddelelse:
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.ApplicationjavaHvilke alternative stavemåder findes der?
Det her viste kodeeksempel er skrevet i henhold til den mest almindelige syntaks. Du kan dog nemt tilpasse det, så du får et bedre overblik. Du kan f.eks. placere de firkantede parenteser direkte efter args. Sådan vil det se ud:
public static void main(String args[]) { }javaDu kan også gemme argumenter som variable argumenter (varargs). For at gøre dette skal du bruge en ellipse:
public static void main(String...args) { }javae279a09d81cf2d9a80f3ef29e7d04b0b
9355e88a23274d30eaac66bea1050fdd