0% au considerat acest document util (0 voturi)
28 vizualizări

Curs 2 Java

Încărcat de

crengutabogdan
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
28 vizualizări

Curs 2 Java

Încărcat de

crengutabogdan
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 11

Curs 2.

Elemente de baza ale


limbajului Java

 Conversii
 Constante
 Expresii
 Instructiuni

2021
Conversii ale valorilor de tip primitiv de date

 Conversii implicite. Java realizează, dacă contextul utilizării valorii o cere,


conversii implicite a valorilor de tip primitiv. Dacă din context rezultă că pentru a
se putea continua calculul o valoare de un anumit tip (a unei variabile sau a unei
expresii) trebuie să fie convertită într-o valoare echivalentă de alt tip şi dacă
această conversie este prevazută de limbaj ca implicită, atunci compilatorul Java
introduce operaţii care convertesc automat valoarea.

Conversiile automate sunt facute de compilator în următoarele cazuri:


1. la atribuirea unei valori de un tip unei variabile de un alt tip
2. la apelul de metodă, la efectuarea transmiterii parametrilor, dacă tipul
argumentelor este diferit de tipul parametrilor formali, şi

3. în calculul de expresii aritmetice, când o operaţie aritmetică (+, -, *, /, etc.)


trebuie efectuată între două valori de tipuri diferite.
Conversii explicite

 Casting este o cerere explicită de realizare a unei conversii de tipuri de


date. Ea se realizează precedând valoarea de convertit cu un “cast”
format din numele tipului în care se doreşte să se facă conversia, cuprins
între paranteze: (T) expresie

short x = (byte) 128;


byte x = 127;
int pixels = (int)(width/scale);
char c= (char) 65;

 În asemenea cazuri compilatorul va efectua conversia cerută chiar dacă


ea produce şi o pierdere de informaţie (ca în cazul conversiei de la float
la int, sau de la double la float). În cazul unei conversii imposibile (de la
boolean la int, de exemplu), compilatorul semnalează eroare de
compilare.
Constante

 O constanta este un element textual din program care reprezintă o


valoare fixă ce nu se poate modifica în cursul execuţiei programului.
Valoarea constantei rezultă direct din modul în care este scrisǎ sau dintr-o
declaraţie precedentă în cazul constantelor simbolice. De exemplu, în
instrucţiunea: int an = 2019; 2019 este o constantă.
 În funcţie de tipul de date de care aparţin, constantele pot fi:
• constante numerice întregi, de exemplu: 16547 –654 987634872L
12e2=12*10^2
• constante numerice reale, de exemplu: 2.25 -4556.43 3.1415927F
12.5e6 19E-65=19/10^65
• constante booleene: true, false
• constante caractere, de exemplu: ‘a’ ‘#’ ‘5’ ‘\u377’ ‘xA’ ‘\u4323’
Notă. Caracterul special ‘\’ (backslash) este folosit în următoarele secvenţe
“escape” pentru reprezentarea constantelor caracter necesare formatării
informaţiilor afişate pe ecranul monitorului:
‘\n’ Newline. Poziţionează cursorul la începutul liniei următoare.
‘\t’ Tab orizontal. Aşează cursorul la următorul tab.
‘\r’ Carriage return. Aşează cursorul la începutul liniei curente, trecând
în modul suprascriere.
Constante (cont.)

‘\f’ Form feed. Avansează cu o pagină.


‘\\’ Backslash. Este folosit pentru a afişa caracterul ‘\’.
‘\’’ Apostrof. Este folosit pentru a afişa caracterul apostrof.
‘\”’ Ghilimele. Este folosit pentru a afişa caracterul ghilimele.
• constante şir de caractere. Sintaxa lor este: un sir de caractere cuprins
între ghilimele “…”. Aceste constante sunt unicul caz de constante-obiect
în Java: valoarea unei asemenea constante nu este o valoare a unui tip
primitiv ca în cazurile de mai sus, ci o valoare referinţă care referǎ un
obiect al clasei String. Obiectul conţine şirul de caractere conţinut între
ghilimele. Exemplu: “acesta este un sir.”
 Constantele simbolice sunt declarate în Java ca nişte variabile, doar
că sunt precedate de modificatorul final.
final double PI ;
PI= 3.141592653589793238;
 Uneori constantele sunt declarate ca variabile clasă ca MAX_VAL:

static final int MAX_VAL = 14567;


Expresii

O expresie este descrierea unui calcul a cărui evaluare produce o valoare unică, de un
tip de date bine stabilit. Componentele unei expresii sunt: purtătorii de valori, numiti
operanzi, şi simbolurile folosite pentru operaţii, numite operatori.
Operanzii unei expresii pot fi variabile, constante, apeluri de metode care returneaza o
valoare sau alte expresii.

Operatori de Operatori logici Operatori pe şiruri


comparaţie
< mai mic && şi (evaluare + concatenare
scurtă)
<= mai mic || sau (evaluare Operatori de deplasare
sau egal scurtă)
> mai mare & şi (evaluare << deplasare la stânga
completă)
>= mai mare | sau (evaluare >> deplasare la dreapta cu extensie semn
sau egal completă)

== egal ^ sau exclusiv >>> deplasare la dreapta cu extensie 0


(evaluare
completă)
!= diferit ! not
Operatori (cont.)

Operatori Operatori multifuncţionali


aritmetici
* înmulţire ++ incrementează cu 1 /= împarte cu valoarea specificată

/ împărţire -- decrementează cu 1 %= modulo valoarea specificată

% modulo += incrementează cu &= “şi” pe biţi cu valoarea specificată


valoarea specificată
+ adunare -= decrementează cu |= “sau” pe biţi cu valoarea specificată
valoarea specificată
- scădere *= multiplică cu valoarea ^= “xor” pe biţi cu valoarea specificată
specificată
<< deplasează stânga cu >>>= deplasează dreapta fără semn cu valoarea
= valoarea specificată specificată
>> deplasează dreapta cu (tip) conversie explicită a valorii operandului la
= semn cu valoarea tipul specificat in paranteze
specificată
instanceof determină dacă un obiect aparţine unei clase
new creeazǎ un nou obiect
?: decizie
, secvenţă
Instructiuni
Instrucţiunile sunt comenzi ale limbajului de programare ce modifică starea
programului.
Instructiuni elementare:
 expresii:
• expresii de atribuire
• utilizarea lui ++ sau –-
• apeluri de metode
• expresii de creare a obiectelor

 Instructiuni de declarare a variabilelor

Instructiuni de control:

 Instructiunea secventa – bloc {}

 Instructiuni de ramificare a controlului:

InstrucţiuneCondiţională ::= if (expresie) instrucţiune1


[else instrucţiune2 ]
Instructiunea switch Java SE <12 vs Java SE
>=12

InstrucţiuneDeSelectie ::= switch (E){ tip(E)={byte, short, int, char, enum,


case v1: expresie_1;| ListaInstrucţiuni_1 Byte, Short, Integer, Character,
String}
case vn-1:
case vn: expresie_n;| ListaInstrucţiuni_n
[default: expresie_def;| ListaInstrucţiuniDef]
}
Observatie: Instructiunea switch in general trebuie sa foloseasca instructiunea break

Versiunea Java SE 12:


InstrucţiuneDeSelectie ::= switch (E){ tip(E)={byte, short, int, char, enum,
case v1 -> expresie_1;| ListaInstrucţiuni_1 Byte, Short, Integer, Character,
String}
case vi,vi+1, …vj -> expresie_i;| ListaInstrucţiuni_i

case vn -> expresie_n;| ListaInstrucţiuni_n
[default -> expresie_def;| ListaInstrucţiuniDef]
}
Exercitiu. Afisarea anotimpului unei luni date.
tasks.withType(JavaExec) { jvmArgs += '--enable-preview' }

Expresia switch Java SE >=12

Versiunea Java SE 12:


ExpresieDeSelectie ::= switch (E){ tip(E)={byte, short, int, char, enum,
case v1 -> expresie_1;| ListaInstrucţiuni_1 Byte, Short, Integer, Character,
String}
case vi,vi+1, …vj -> expresie_i;| ListaInstrucţiuni_i

case vn -> expresie_n;| ListaInstrucţiuni_n
[default -> expresie_def;| ListaInstrucţiuniDef]
}

Versiunea Java SE 13: instructiunea yield valoare;


Observatie: Expresia switch poate folosi instructiunea yield

Exercitiu. Afisarea anotimpului unei luni date


Instructiuni repetitive
InstrucţiuneWhile ::= while (E) Instrucţiune , unde E este o expresie logica

InstrucţiuneDoWhile ::= do
Instrucţiune
while (E);

InstrucţiuneFor ::= for ([ExpresieInitiala]; [ExpresieLogica]; [ExpresieIncrement])


Instrucţiune

InstrucţiuneFor ::= for (Declaratie: Expresie) Instructiune

for(String s: args) System.out.println(s);

Execuţia unei instrucţiuni repetitive se întrerupe cu break sau continue.

S-ar putea să vă placă și