Ç’do te thote public static void main?

Titulli i temes e shpjegon me mire permbajtjen.
Eshte “kodi” [ne gjuhe profesionale eshte deklarimi i metodes se aplikacionit] me i perdorur ne aplikacionet java, shumica e tyre perdorin “public static void main” , pra ç’do te thote ky kod, ose me sakt secila nga perberesit e kesaj “fraze” ne java?
Pse perdoret aq shpesh?
Po te mungoj ndonjeri nga keto komponent ç’fare ndodh?
Po e fillojm nga
Public
Vertet kur jemi ne fillimet e programimit nuk eshte qe na shqeteson shume se pse quhet public apo pse jo private dhe po te quhet private ç’fare ndodh dhe po te quhet public ç’fare ndodh por eshte diçka shume me rendesi sidomos ne OOP (object oriented programming).
Pse?
Dihet qe ne OOP perdoren “objektet e gatshme” te cilat i krijojm ne dhe i perdorim ne klasat tona apo ne failet e tjera .java \ .class (te kompiluara)
Kete po e them pikerisht sepse nese eshte “public” atehere kjo kok (header) dhe vet aplikacioni qe pason mund te perdoret nga aplikacionet e tjera rast konkret kur kemi 2 klasa te ndryshme ku njera krijon nje objekt qe perdor aplikacionin e nje klase tejter dhe ne kete rast nese tek klasa tjeter eshte private ne vend te public atehere aplikacioni nuk lejon perdorimin apo “thirrjen” e tij nga aplikacione te tjera java.
Kemi dhe protected dhe default qe perdoren edhe ato jo pa qellim.
Nga kjo themi qe :
public do te thote qe aplikacioni eshte PUBLIK dhe perberja e tij eshte publike , mund te thirret dhe perdoret nga te gjithe.  Pra PUBLIC eshte nje modifikues aksesi
Metoda static ka te beje shume me permbajtjen e variabilave qe do te kete aplikacioni dhe me vet permbajtjen e aplikacionit.
Pra ç’do te thote kjo “static”?
Dhe une nuk e pata te thjesht ta kuptoja ashtu siç eshte, shume libra me shume te komplikojn mendimet se sa ta sqarojn tamam..
Static do te thote 1 per 1.
Dhe 1 per 1 ne java ka nje shpjegim pak me te gjate 😉
Ne OOP siç e dime ka shume rendesi “thirrja” e metodave te tjera qe jane jasht klases sone dhe ne realitet ky eshte edhe themeli i OOP. Keshtu qe kur themi 1 per 1 do te thote qe te gjitha variabilat, qe krijohen ne aplikacion jane GLOBALE dhe ato mund te therriten  nga klasat apo aplikacionet qe jane jasht failit tone , pra ato mund te thirren ne menyre te drejtperdrejt pa pasur nevoje per futjen e objekteve tamam ne klasen tone dhe percaktimin e tyre pedant.
Ne fjale te tjera kur e perdorim metodat dhe variabilat behen globale qe kur e analizojm si nje pentester do te thote “mish per kasapin” sepse eshte shume e pasigurt ne perdorim.
Kalojm tek VOID
Sa here qe ta perdorni duhet tju vij ne mendje “no return” pra rruge pa kthim, njehere qe nisemi nuk mund te kthehemi me mbrapa.
Void nga ana tjeter eshte i pari qe jep mandatin per “il punto di non ritorno” pra per piken ku s’ka me kthim mbrapa.
Kjo normalisht eshte edhe diçka qe mund ta gjejm gjithandej por ne realitet ç’fare duam te themi me kete “pa kthim”?
Ç’fare eshte void ne fund te fundit?
Eshte thjesht nje metod, po sa metoda mund te perdorim ne ne nje aplikacion java?
Vertet qe mund te perdorim shume metoda, dhe kjo eshte nje prej tyre default qe e ka vet java por ne ndryshim nga ato te tjerat ne nuk mund ta therrasim kete ne aplikacione te tjera ja nje shembull i nje metode qe mund ta therrasim ne aplikacione te tjera.
Shohim pak kete shembull banal te OOP qe e kemi postuar ne fourm
http://albanianwizard.org/diskutime/gjuhe_te_kompiluara/programim_me_objekte_java-t20.0.html
Kemi krijuar nje metod paraqitMesazhin() te cilen e therrasim nga krahu tjeter me aplikacionin TestimiObjektit.java
Pra nuk mund te bejm te njejten gje me void.
Besoj e u qartesua dhe kjo.
Per main kemi shume pak per te thene, nuk mund te quhet aplikacion diçka.java nese nuk ka kete metod ne te.
Pra nese mungon main atehere kompiluesi nuk e shikon si nje aplikacion dhe thote mos eshte applet?
Nese ka paqartesi mund te pyesni.