Myslim, ze by sme ani tentokrat nemali porusit tradiciu a zacat aplikaciou, ktora vypise na konzolu kratku spravu.class Test { public static void main(String argumenty[]) { System.out.println("*** toto je Test ***"); } }//class Test
Kazda aplikacia ma rovnaku strukturu. Musi obsahovat aspon jednu triedu definovanu uzivatelom. Aspon jedna trieda (nami vytvorena) musi obsahovat metodu public static void main(String s[]) . Trieda, ktora obsahuje tuto metodu, musi mat meno zhodne s menom suboru, v ktorom sa nachadza (plus pripona suboru .java).
Tymto vsetkym kriteriam vyhovuje predchadzajuci priklad. Samozrejme za predpokladu, ze je ulozeny v subore Test.java.
Vo vseobecnosti to vyzera takto:class MenoHlavnejTriedy { //datove cleny public static void main(String s[]) { ... // tato metoda ma rovnaky vyznam ako funkcia main // z jazyka C/C++ ... } //ostatne metody triedy ... }
Na tomto mieste by som rad upozornil na problem, ktory neobisiel ani mna, a ktory som videl aj na listserveri.
Najprv si ukazme, ako to nema vyzerat:class ZlyPriklad { int pocitadlo; public static void main(String s[]) { pocitadlo = 0; } }Ten priklad by sa nemal dat ani skompilovat. Chyba spociva v tom, ze v metode public static void main(String s[]) pristupujeme k premennej pocitadlo. To vsak nie je mozne, pretoze staticke metody mozu pristupovat len ku statickym premennym. Pisal som o tom v kapitole Jazyk/Trieda - Staticke cleny triedy.
Podla toho by nasledujuci kod mal byt skompilovatelny a aj vykonatelny.class DobryPriklad { static int pocitadlo; public static void main(String s[]) { pocitadlo = 0; } }