De exemplu, în programul din fișierul AfisareSiruri.java distingem
urmatoarele unități lexicale: - cuvinte cheie: class, public, static, void; - identificatori: AfisareSiruri, main, String, args, System, out, print, println; - literali: "sirul 1", "sirul 2", "AB", "CDE", "ab", "cd", "ef", ; - separatori: { } ( ) [ ] , ; - operator: +; - comentarii: /* Exersarea metodelor print si println */ // se afiseaza sub sirul 1 |
Vom analiza acum separat fiecare din aceste categorii de unități lexicale.
În limbajul Java, identificatorii sunt șiruri formate din litere,
cifre și caractere de subliniere ('_'), care încep cu o literă. Lungimea
identificatorului nu prezintă importanță, însă acesta nu poate conține
spații libere sau alte caractere, decât cele menționate aici.
Exemple de identificatori valabili:
PrimaClasa Este clar acum că și exemplele date anterior ( Afisari, main, String, args, System, out, print, println) sunt, de asemenea, identificatori. |
Se obișnuiește ca numele de clase să înceapă cu literă
majusculă. De asemenea, se obisnuiește ca separarea între cuvinte,
în cadrul identificatorilor compuși din mai multe cuvinte ale limbajului
natural, să se facă incepând fiecare cuvant nou cu literă majusculă,
dar se poate face și prin caracterul de subliniere '_'. Acestea nu sunt
însă reguli sintactice, ci doar convenții neobligatorii.
Programatorul poate adopta orice identificatori care respectă regulile și convențiile de mai sus și care nu sunt cuvinte cheie sau cuvinte rezervate. Desigur însă că folosirea unor identificatori care au semnificație pentru om, cum ar fi viteza sau PretDeVanzare este preferabilă celor fără semnificație, cum ar fi v15XB7, deoarece ușurează înțelegerea și urmărirea programului. Amintim însa că, pentru calculator, identificatorii nu au nici o alta semnificație, deci, din acest punct de vedere, toate exemplele de identificatori date aici sunt la fel de bune. |
În limbajul Java, există următoarele cuvinte cheie:
Dintre acestea, const și goto nu sunt folosite în prezent, dar ele au fost introduse în tabela cuvintelor cheie în vederea unei eventuale utilizări viitoare. Observăm acum că toate exemplele de cuvinte cheie date la începutul acestei secțiuni (class, public, static, void) sunt prezente în tabela de mai sus. |
Am subliniat faptul că literalul este forma sub care o anumita valoare este reprezentată în fișierul sursă, deci în programul scris în limbaj de nivel superior (în cazul nostru în limbajul Java). Vom arăta ulterior că forma de reprezentare a acelorași valori în memoria internă a calculatorului (forma internă) este diferită de cea externă. Vom reveni asupra regulilor de scriere a literalilor când vom prezenta tipurile de date din limbajul Java.
Aproape toți acești separatori au fost deja folosiți în exemplele
date în acest capitol.
După numărul de operanzi deosebim: operatori unari, care se aplică unui singur operand, de ex. operatorul - în expresia -x; utilizarea operatorului unar se face, de regula, sub forma "prefix" operator operand, în care operatorul se pune în fața operandului; uneori însă se foloseste și forma "postfix" operand operator în care operatorul se pune după operand; operatori binari, care se aplică asupra a doi operanzi, operatorul fiind situat între aceștia; de ex. operatorul de concatenare + în expresia "acesta este " + "un exemplu" sau operatorul de adunare a două numere + în expresia 17+28.Operatorii binari se folosesc sub forma "infix" operand1 operator operand2 în care operatorul este situat între cei doi operanzi; operatori ternari, care se aplică asupra a trei operanzi; în limbajul Java există un singur operator ternar ( ? :) folosit în expresiile condiționale. Operatorul ternar se scrie sub forma operand1 ? operand2 : operand3 în care operand1 are o valoare logică (true sau false), iar ceilalti doi operanzi sunt expresii aritmetice sau logice (dar de același tip). Din exemplele de mai sus, observăm că semnificația unui operator poate să depindă de context, ca în cazul operatorului +, care a fost folosit atât pentru operația de concatenare a șirurilor, cât și pentru cea de adunare a numerelor. |
Din punct de vedere matematic, operatorii sunt funcții cu unul, două sau trei argumente (argumentele fiind operanzii). De exemplu, expresia a+b, în care + este un operator binar, iar a și b sunt operanzi, este o funcție de argumente a si b, care are ca valoare suma valorilor celor două argumente.
După efectul operatorului asupra operanzilor, operatorii pot
fi fără efect lateral, care lasa valorile operanzilor
nemodificate, și cu efect lateral, care modifică valorile
operanzilor. Astfel, operatorul + din exemplul anterior, este un
operator fără efect lateral. În schimb, în expresia ++a operatorul
de incrementare ++ are efect lateral deoarece, în urma efectuarii
operației, valoarea operandului a crește cu o unitate.
Dăm aici o listă a operatorilor folosiți în limbajul Java.
Operatori unari: + - ++ -- new ! ~ Operatori binari + - * / % Operator ternar ?: Remarcăm că operatorii + și - pot fi atât unari ( ca în expresiile +a sau -a), cât și binari (ca în expresiile a+bsaua-b). Semnificațiile operatorilor vor fi arătate când se vor prezenta tipurile de date și expresiile. |