Ako používať metódu Java main():
Metóda main() sa nachádza na začiatku a na konci každého programu v Jave. Pri vykonávaní sa berú do úvahy len príkazy, ktoré sa nachádzajú v jej rozsahu. Preto je tak dôležité venovať pozornosť každému detailu syntaxe metódy. Ak je nesprávna, program sa nevykoná.
Čo je metóda main() v Jave?
Bez ohľadu na to, aký projekt chcete implementovať pomocou programovacieho jazyka alebo aký stručný alebo rozsiahly kód na to použijete, v jazyku Java každá aplikácia začína metódou main(). Ak nie je k dispozícii, kód nemožno vykonať. Predtým, ako sa to odovzdá metóde main(), sa do pamäte načíta Java Virtual Machine (JVM) a kód sa skompiluje. Po dokončení týchto krokov sa kód skontroluje metódou Java main(). Potom sa, dúfajme, správne vykoná. V zásade je možné použiť aj viacero týchto metód, pričom maximálny počet je jedna hlavná metóda na triedu.
Aká je syntax metódy Java main()?
Syntax metódy Java main() je vždy rovnaká. Skladá sa z viacerých dôležitých častí a vyzerá takto:
public static void main(String[] args)javaTieto komponenty plnia nasledujúce funkcie:
public: Táto zložka zabezpečuje, že trieda je prístupná aj zvonku.static: Táto časť deklaruje metódu ako statickú, čo znamená, že môže existovať bez toho, aby bol vopred vytvorený objekt konkrétnej triedy.void: Tým sa zabezpečuje, že metódamain()v Jave nemusí vrátiť hodnotu.main: Toto používa Java Virtual Machine na identifikáciu metódy pri vykonávaní programu.String[] args: Ide o pole, v ktorom sa ukladajú a prijímajú argumenty príkazového riadku.
Prečo sú jednotlivé zložky main() dôležité?
Aby sme lepšie pochopili, ako funguje metóda Java main() a prečo sú všetky komponenty tak dôležité, v nasledujúcich častiach sa na ne pozrieme jednotlivo. Najdôležitejšie je, že vám ukážeme, čo sa stane, ak chýba časť podpisu. Na to si vyberieme veľmi jednoduchý príklad kódu, ktorý vygenerujeme pomocou príkazu Java System.out.println.
public class main {
public static void main(String[] args) {
System.out.println("Here is your sample text.");
}
}javaPo spustení tohto kódu dostanete nasledujúci výstup:
Here is your sample text.javapublic
public funguje ako špecifikátor prístupu a signalizuje virtuálnemu stroju Java , kde sa vykonáva príslušný program. Existujú aj iné modifikátory prístupu, ako napríklad default, private a protected. Ak ich však použijete s metódou main() v Jave, zobrazí sa vám chybová správa:
public class main {
private static void main(String[] args) {
System.out.println("Here is your sample text.");
}
}javaPríslušná otázka znie:
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.ApplicationjavaTáto chybová správa označuje, že k metóde nie je verejný prístup.
static
Kľúčové slovo static potvrdzuje, že použitá metóda je statická. To znamená, že ju možno použiť nezávisle od inštancií triedy. Ak túto zložku odstránite, kód bude vyzerať takto:
public class main {
public void main(String[] args) {
System.out.println("Here is your sample text.");
}
}javaTu sa tiež zobrazí chybová správa:
Error: Main method is not static in class test, please define the main method as:
public static void main(String[] args)javavoid
void je kľúčové slovo, ktoré určuje, že metóda main() v Jave by nemala vrátiť žiadne hodnoty. Keďže main() je začiatok a koniec programu v Jave, vykresľovanie nie je potrebné. Takto vyzerá kód bez void:
public class main {
public static main(String[] args) {
System.out.println("Here is your sample text.");
}
}javaToto je chybová správa, ktorú dostanete, ak vynecháte 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
Pre každý program v Jave JVM najskôr vyhľadá identifikátor main. Ten označuje, kde má spustenie programu začať a skončiť. Akonáhle metóda main() v Jave dokončí svoje spustenie, program sa ukončí. Preto by sa podpis nikdy nemal meniť ani dopĺňať. Tu je príklad toho, ako vyzerá zmena podpisu:
public class main {
public static void replacementMain(String[] args) {
System.out.println("Here is your sample text.");
}
}javaKeďže JVM nemôže nájsť identifikátor, program priamo ukončí a zobrazí nasledujúcu chybovú správu:
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
Pole String[] args zodpovedá triede java.lang.String a obsahuje údaje, ktoré ukladá ako reťazcové hodnoty. Ak túto špecifikáciu vynecháte, kód bude vyzerať takto:
public class main {
public static void main() {
System.out.println("Here is your sample text.");
}
}javaBez argumentu nemožno metódu Java main() vykonať. V dôsledku toho sa opäť zobrazí nasledujúca chybová správa:
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.ApplicationjavaAké sú alternatívne spôsoby písania?
Uvedený príklad kódu bol napísaný podľa najbežnejšej syntaxe. Môžete ho však ľahko prispôsobiť, aby ste získali lepší prehľad. Napríklad môžete umiestniť hranaté zátvorky priamo za args. Takto by to vyzeralo:
public static void main(String args[]) { }javaArgumenty môžete tiež uložiť ako premenné argumenty (varargs). Na to potrebujete použiť trojbodku:
public static void main(String...args) { }java