Documente Academic
Documente Profesional
Documente Cultură
Analizează și discută!
Evaluează-te!
Știați că...
1. în prezent, Netflix este una dintre cele mai cunoscute și mai mari platforme de divertisment din întreaga
lume, oferind filme și seriale TV prin streaming media. Și majoritatea aplicațiilor Netflix folosesc Java (cu
puțin C++)?
2. în Java, NASA a creat aplicația Word Wind care are un glob virtual 3D și afișează date geografice.
Programul folosește imagini aeriene de la sateliți pentru a construi modele 3D ale planetelor. Cel mai
important, este un software open-source și, deoarece este scris în Java, acceptă orice SO.
3. jocul extrem de popular, Minecraft, a fost inițial scris în Java? Chiar dacă o parte din el a fost
transformată în cod nativ pentru performanță, multe părți ale Minecraft rămân scrise în Java.
4. anumite componente ale infrastructurii Twitter au fost construite în Java, inclusiv unele servicii și
sisteme de gestionare a datelor?
5. o parte din infrastructura și funcționalitățile din spatele aplicației Google Docs sunt construite folosind
Java?
6. unele aplicații Java sunt utilizate pentru vizualizarea și procesarea imaginilor medicale, precum
tomografii computerizate (CT), imagistica prin rezonanță magnetică (MRI) sau imagini radiologice?
1
https://www.oracle.com/java/technologies/downloads/
2
https://netbeans.apache.org/front/main/
3
https://www.eclipse.org/downloads/
4
https://www.jetbrains.com/edu-products/download/#section=idea
musteata.victoria@ceiti.md 3 ©Musteață Victoria
Modulul: Programarea Orientată spre Obiecte CEITI
1.2 Structura lexicală a limbajului Java
Implică-te și studiază, informează-te!
1.2.1 Setul de caractere
Limbajului Java folosește setul de caractere Unicode. Acesta fiind un standard
internațional care înlocuiește vechiul set de caractere ASCII, deoarece a apărut
necesitatea de a reprezenta mai mult de 256 de caractere. Setul de caractere Unicode, fiind
reprezentat pe 16 biți oferă posibilități mult mai mari. Ceea ce înseamnă că pot fi folosite caractere
în limbile chineză, japoneză și alte limbi. La citirea fişierului sursa, compilatorul Java folosește
secvențele escape Unicode. Acestea sunt secvențe de caractere ASCII care încep cu caracterul
backslash (\), după care urmează al doilea caracter din secvență care trebuie să fie u sau U,
urmate de o combinație de patru cifre hexazecimale care formează împreună doi octeți de
memorie reprezentând un caracter Unicode. De exemplu, cifrele de la 0 la 9 sunt reprezentate prin
secvențe escape Unicode de la \u0030 la \u0039 și sunt interpretate ca cifre ISO-LATIN-1.
Anumite caractere sunt reprezentate prin secvențe escape speciale:
\n - linie noua \\ - backslash
\b - backspace \” - ghilimele
\t - tab \’ - apostrof
1.2.2 Identificatori
Reprezintă șiruri de caractere care sunt de fapt denumirile date unei variabile, clase sau unei
funcții. Condiții:
▪ şirul începe cu o literă, caracterul underscore (_) sau semnul dolarului ($);
▪ şirul este diferit de orice cuvânt cheie sau rezervat;
▪ şirul este diferit de null, false, true.
▪ șirul este case-sensitive, astfel identificatorii suma și Suma sunt considerați identificatori
diferiți.
Deși nu există o regulă obligatorie pentru scrierea identificatorilor, există anumite convenții
utilizate:
identificatorii numelor de clase încep cu majusculă, fiecare cuvânt distinct din identificator
începe cu majuscula (ex. MijloaceDeTransport);
identificatorii de variabila și metode încep cu litera mică, fiecare cuvânt care urmează
începe cu majusculă (ex. setezCuloare());
identificatorii de constante se scriu cu majuscule (ex. PI_VALOARE);
Menținerea unei convenții clare și respectarea regulilor de denumire a identificatorilor nu doar
facilitează înțelegerea codului, dar și îmbunătățește claritatea și întreținerea acestuia.
Reguli importante!
1. Prima linie dintr-un fișier Java este declarația pachetului clasei. În caz că declarație este
omisă clasa face parte din pachetul implicit.
2. Declararea pachetului pe oricare altă linie din fișierul Java va genera eroare de compilare.
3. Dacă o clasă aparține pachetului implicit aceasta nu va putea fi importată sau folosită în
oricare alt pachet.
Analizează și discută!
Folosind cunoștințele acumulate anterior în cadrul altor module creați în caiete o
diagramă Venn cu titlul Structura lexicală a limbajului, în care comparați structura lexicală a
limbajelor Java și C++.
Evaluează-te!
Reguli importante!
numele variabilei trebuie sa înceapă cu o literă, linie de subliniere (_) sau cu simbolul dolar
($);
numele de variabilă NU poate începe cu o cifră, după primul caracter se pot folosi cifre;
numele de variabila NU poate fi un cuvânt Java rezervat;
variabila trebuie definită oriunde în program înainte de a fi folosită;
pot fi definite mai multe variabile în același timp;
De exemplu:
int a; double c, d, e; boolean $c; short _x;
La inițializarea unei variabile trebuie să se țină cont de tipul acesteia, deoarece în Java NU este
posibil atribuirea de valori de tip diferit decât cel al variabilei. De exemplu, instrucțiunile
următoare generează eroare de compilare de tipul possible loss of precision:
int x = 34.5; float c = 23.6;
În cazul variabilei de tip float, c, eroare este generată deoarece valorile reale constante sunt
considerate de tip double. Corect este sa pui f la sfârșitul valorii, adică 23.5f.
Reguli!
tipul valorii trebuie sa fie identic cu tipul variabilei;
pot fi inițializate mai multe variabile în același timp;
în Java singurele valori posibile pentru variabile booleene sunt true sau false (în C sau
C++, orice valoare numerică diferită de 0 este considerată true);
valorile constante de tip float se definesc cu simbolul f la final deoarece, implicit,
constantele reale sunt considerate de tip double;
simbolurile de tip caracter se definesc între ’’ (apostrof) și nu între “ “ (ghilimele);
Pentru a defini o constantă se va folosi cuvântul cheie final:
De exemplu: final int D=3;
Pentru fiecare tip primitiv de date, în Java există câte o clasă ce îi este asociată numită clasă
wrapper sau clasă înfășurătoare. Acestea sunt:
Tip primitiv Clasa wrapper
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
Clasele Wrapper sunt utile atunci când trebuie să folosești tipuri de date primitive în
contexte care necesită obiecte. De exemplu, atunci când lucrezi cu colecții (cum ar fi ArrayList
Analizează și discută!
Lucru în echipe! Dezbatere: Utilizarea Tipurilor de Date Primitive versus Clasele Wrapper în
programare. Una din echipe va prezenta argumente pentru folosirea tipurilor primitive de date,
cealaltă echipă va prezenta argumente pentru utilizarea claselor Wrapper.
Indicii:
− Fiecare echipă va prezenta argumentele sale în două runde, începând cu o introducere și
continuând cu argumentele principale.
− Se va acorda timp pentru contra-argumente și pentru întrebări de la cealaltă echipă.
− Dezbaterea se va finaliza cu concluzii și o rundă finală de întrebări deschise.
Evaluează-te!
Analizează și discută!
Realizați un program C++ care va citi de la tastatură două numere după care va calcula
și va afișa suma acestora. Transformați acest program în limbaj Java.
Evaluează-te!
Semantică:
Structura repetitivă for implementează o structură repetitivă pre-condiționată, asemenea
lui while...do. Structura for este mult mai eficientă deoarece iterația și inițializarea sunt
incluse în structură din start.
Se execută astfel:
musteata.victoria@ceiti.md 16 ©Musteață Victoria
Modulul: Programarea Orientată spre Obiecte CEITI
- se evaluează expresia de inițializare;
- se evaluează condiția, dacă rezultatul este diferit de 0, adică corespunde valorii logice
adevărat, atunci se execută instrucțiunile din corpul instrucțiunii for, în caz contrar se trece
la execuția instrucțiunilor ce urmează după corpul instrucțiunii for;
- se evaluează expresia de iterație și se revine la pasul anterior - evaluarea condiției.
Exemplu:
int i,n=4, s=0;
for (i=0;i<=n;i++) s+=i;
System.out.println(s);
Variabilele declarate în zona de inițializare reprezintă variabile locale blocului for și nu sunt
vizibile în afara lui:
int n=4, s=0;
for (int i=0;i<=n;i++) s+=i;
System.out.println(i);
//eroare compilare: cannot resolve symbol:i
În interiorul structurii for, pot fi trecute mai multe instrucțiuni de inițializare sau de iterație
separate prin, (virgulă):
for (initializare1, initializare2; conditie; iteratie1, iteratie2){...}
Elementele instrucțiunii for sunt opționale. Următoarele exemple sunt corecte, însă în unele
dintre ele trebuie sa decizi când se termină bucla infinită prin break:
for( initializare; ; )
for( ; conditie; iteratie)
for( ; ; iteratie)
for( ; ; ) // bucla infinita
1.5.5 Instrucțiunea enhanced – for (for îmbunătățit)
Sintaxă:
for ( variabila : colectie_iterabila)
{ .... instrucțiuni; }
Semantică:
Structura repetitivă enhanced – for implementează o structură repetitivă pre-condiționată.
Această structură a fost introdusă începând cu Java 5.0 pentru a permite o sintaxă mai ușoară
(este echivalent cu foreach din .NET). Aceasta structură poate fi utilizată pentru a itera prin
colecții care implementează interfața java.lang.Iterable. De asemenea se folosește în
lucru cu vectori. Lucrează cu însăși elementele și nu cu indicii acestora. Returnează elementele
unul câte unul în variabila declarată.
Exemplu:
int suma = 0; int [] vector = {1,2,3,5};
for(int valoare : vector)
{ suma += valoare;
} System.out.println("Suma este "+suma);}
musteata.victoria@ceiti.md 17 ©Musteață Victoria
Modulul: Programarea Orientată spre Obiecte CEITI
1.5.6 Instrucțiuni pentru modificarea iterării: break și continue
Instrucțiunea break permite întreruperea unei bucle for, do...while, while sau ieșirea
dintr-o serie de case-uri.
Instrucțiunea continue permite trecerea la următoare iterație a unui ciclu for, do-while,
while ignorând restul instrucțiunilor din iterația curentă.
Exemple:
int i; int i;
for (i=1;i<=10;i++){ for (i=1;i<=10;i++){
if (i==5) break; if (i==5) continue;
System.out.print(i+" "); System.out.print(i+" ");
} }
System.out.println(" Sfârșit la System.out.println(" Sfârșit la
iterația "+i); iterația "+i);
Analizează și discută!
Evaluează-te!
Știați că...
Aveți posibilitatea cu o conexiune la Internet să rulați compilatoare Java online? Desigur ca au unele limitări, dar
pot fi o soluție bine venită la un moment dat. Iată câteva exemple de compilatoare Java online:
− https://www.jdoodle.com/online-java-compiler
− https://www.compilejava.net/
Succes!