Hur man använder Java-metoden main():
Metoden main() finns i början och slutet av varje program i Java. Endast satser som ligger inom dess räckvidd beaktas under körningen. Det är därför det är så viktigt att vara uppmärksam på varje liten detalj i metodens syntax. Om den är felaktig kommer programmet inte att köras.
Vad är main() -metoden i Java?
1
Vad är syntaxen för Java-metoden main()?
Syntaxen för Java main() -metoden är alltid densamma. Den består av flera viktiga delar och ser ut så här:
public static void main(String[] args)javaDessa komponenter har följande funktioner:
public: Denna komponent säkerställer att en klass också kan nås från utsidan.static: Denna del deklarerar metoden som statisk, vilket innebär att den kan existera utan att ett objekt av en specifik klass har skapats i förväg.void: Detta säkerställer att metodenmain()i Java inte behöver returnera ett värde.main: Detta är vad Java Virtual Machine använder för att identifiera metoden när den kör ett program.String[] args: Detta är en array där kommandoradsargumenten lagras och tas emot.
Varför är de enskilda komponenterna i main() viktiga?
För att bättre förstå hur main() fungerar och varför alla komponenter är så viktiga, kommer vi att titta på dem var för sig i följande avsnitt. Viktigast av allt är att vi kommer att visa vad som händer om en del av signaturen saknas. För att göra detta väljer vi ett mycket enkelt kodexempel, som vi kommer att skriva ut med Java-kommandot System.out.println.
public class main {
public static void main(String[] args) {
System.out.println("Here is your sample text.");
}
}javaNär du kör den här koden får du följande resultat:
Here is your sample text.javapublic
public fungerar som en åtkomstspecifikator och signalerar till Java Virtual Machine var motsvarande program ska köras. Det finns andra åtkomstmodifierare, såsom default, private och protected. Om du använder dessa med metoden main() i Java får du dock ett felmeddelande:
public class main {
private static void main(String[] args) {
System.out.println("Here is your sample text.");
}
}javaMotsvarande fråga är:
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.ApplicationjavaDet här felmeddelandet indikerar att det inte finns någon allmän åtkomst till metoden.
static
Nyckelordet static bekräftar att metoden som används är statisk. Det betyder att den kan användas oberoende av klassinstanser. Om du tar bort denna komponent kommer koden att se ut så här:
public class main {
public void main(String[] args) {
System.out.println("Here is your sample text.");
}
}javaHär får du också ett felmeddelande:
Error: Main method is not static in class test, please define the main method as:
public static void main(String[] args)javavoid
void är ett nyckelord som anger att metoden main() i Java inte ska returnera några värden. Eftersom main() är start- och slutpunkten för ett program i Java är rendering onödigt. Så här ser koden ut utan void:
public class main {
public static main(String[] args) {
System.out.println("Here is your sample text.");
}
}javaDetta är felmeddelandet som visas om du utelämnar 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
För varje program i Java söker JVM först efter identifieraren main. Denna anger var exekveringen ska börja och sluta. Så snart metoden main() i Java har slutfört sin exekvering avslutas programmet. Det är därför signaturen aldrig får ändras eller kompletteras. Här är ett exempel på hur en ändring av signaturen ser ut:
public class main {
public static void replacementMain(String[] args) {
System.out.println("Here is your sample text.");
}
}javaEftersom JVM inte kan hitta identifieraren kommer den att avsluta programmet direkt och visa följande felmeddelande:
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
Arrayen String[] args motsvarar klassen java.lang.String och innehåller data som den lagrar som strängvärden. Om du utelämnar denna specifikation kommer koden att se ut så här:
public class main {
public static void main() {
System.out.println("Here is your sample text.");
}
}javaUtan argumentet kan Java main() -metoden inte köras. Som ett resultat får du följande felmeddelande igen:
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.ApplicationjavaVilka alternativa stavningar finns det?
Kodexemplet som visas här är skrivet enligt den vanligaste syntaxen. Du kan dock enkelt anpassa det för att få en bättre översikt. Du kan till exempel placera hakparenteserna direkt efter args. Så här skulle det se ut:
public static void main(String args[]) { }javaDu kan också lagra argument som variabla argument (varargs). För att göra detta måste du använda tre punkter:
public static void main(String...args) { }java
