De ce este atât de importantă metoda main() în Java? Poți rula un program în Java fără metoda main()? Nu. De ce? Pentru că este ultra mega importantă! Hai să-ți explic…
Imaginează-ți că vrei să bei apă și nu mai poți de sete. Ce faci? Iei o sticlă de apă, să zicem, la 0,5L. Pe unde te apuci să bei? Păi desfaci dopul și începi să-ți astâmperi setea. Dacă nu era dopul și sticla ar fi fost închisă, fără niciun orificiu prin care să poți bea apă, ce făceai? O spărgeai sau o găureai? O sticlă are întotdeauna un orificiu prin care intră și iese apa…
Așa este și cu metoda main(). Știm deja că orice program în Java este scris într-o clasă (neapărat) și are extensia .java (neapărat). Ei bine, orice program în Java trebuie să aibă o singură metodă main(), teoretic, iar practic mai vedem! Metoda main() trebuie să existe într-o singură clasă, chiar dacă programul tău conține mai multe clase… E locul prin care poți să „bei apă” la executarea programului… Metoda main() este executată prima dată în orice program scris în Java (de altfel, chiar în orice limbaj de programare care conține o metodă principală…), teoretic, dar practic există și blocurile statice care rulează înainte… Să zicem că metoda main() e acea „gură de șarpe”, sau ușa de intrare în casă, sau chiar singurul punct de frontieră pentru a intra în România (dacă se poate să fie un singur punct de frontieră…).
Metoda main() are o sintaxă pe care o vei întâlni în orice program scris în Java:
1| public static void main(String[] args) { // definirea metodei main() 2| 3| // codul 4| 5| } // încheierea metodei main()
Te rog să ții minte că fiecare cuvânt scris în definirea metodei main() este important și trebuie memorat ca atare!
Singurul cuvânt pe care îl poți schimba din antetul funcției main() este „args” și poate fi înlocuit cu orice altceva… În rest, memorează-le și fă bine să nu le uiți! Învață să fii profesionist!
Cuvântul public este foarte important pentru că metoda trebuie să fie publică, deci vizibilă din orice clasă, metodă sau funcție… Este imperios necesar să folosești cuvântul special public!
Cuvântul static se folosește pentru gestionarea memoriei, astfel că programul odată rulat, apelează metoda main() fără a crea o instanță a clasei. Momentan mă rezum la explicația asta, iar pe viitor voi explica și la ce se folosește cuvântul special static.
Cuvântul void se folosește la metodele care nu returnează nimic, deci au un „gol”. Mai multe voi explica atunci când abordez cuvintele cheie ale limbajului Java.
Cuvântul main trebuie să fie neapărat main. Este exclusă orice altă variantă, fie ea și cu „M” mare cum este în limbajul C#. Când rulezi un program în Java, compilatorul se uită imediat după funcția main(). E ca și cum un cor sau o orchestră trebuie să aibă un dirijor, deci imediat trebuie să observi dirijorul pentru a-ți da seama cum trebuie să se „miște” muzica… Sau altfel spus, să-l cauți pe programatorul ăla care a fost înaintea ta pe proiect pentru a-ți explica de ce vai și-amar a scris un cod atât de nașpa… Sigur a fost un programator înaintea ta… Programele nu cad din cer (programatorii mai cad…).
Paramterul metodei main() este un vector de tipul String și poate avea orice nume vrei tu. În mod normal vei găsi cuvântul „args”, dar e irelevant… Important e să ai acolo un vector de tipul String[]. Voi aborda și vectorii pe măsură ce avansez cu articolele.
Important: metoda main() este punctul de start pentru JVM (Java Virtual Machine), înainte de a începe execuția programului. Fără metoda main(), programul nu va fi executat. Încă ceva: nu trebuie să existe două metode main() cu aceiași parametri!
Așadar, trebuie să ții minte antetul metodei main() de la cap la coadă: public static void main(String[] args) {…}. În mod normal, orice funcție, metodă sau clasă pe care o scrii într-un program, trebuie să fie apelată în metoda main() dacă vrei să o folosești…
Hai să nu închei articolul până nu îți scriu și un exemplu… JVM execută totdeauna un bloc static, apoi metoda main(). Exemplu:
1| class Test { 2| public static void main(String[] args) { 3| System.out.println("Metoda main"); 4| } 5| 6| static { 7| System.out.println("Blocul static"); 8| } 9| } -Afișează: Blocul static Metoda main
Dacă nu este un bloc static ce are o linie de cod pentru afișare, atunci se trece direct la metoda main(). Chiar și cu blocul static, dacă nu exista funcția main(), programul dădea eroare.
Nu mă las până nu-ți mai dau și alte exemple de definire a metodei main(), definiri corecte:
- public static void main(String[] args)
- static public void main(String[] args)
- public static void main(String[] programe)
- static public void main(String []coduri)
- public static void main(String args[])
- public static void main(String…args)
Învață să fii profesionist!
Sursă imagine: Andrey Metelev on Unsplash