J. Introducere in limbajul Java - Discipline
J. Introducere in limbajul Java - Discipline
J. Introducere in limbajul Java - Discipline
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Curs POO-2006 (draft) 2006-2007 9/34 10/22/2006 2006_Intro_<strong>Java</strong>_v01.htm<br />
Cateodata aceste programe fac ce se presupune ca ar trebui sa faca; <strong>in</strong> alte dati produc efecte<br />
nedorite. Astfel de lucruri se petrec pentru ca o variabila ne<strong>in</strong>itializata poate lua valoarea vreunui<br />
obiect uitat alocat aflat <strong>in</strong> locatia de memorie <strong>in</strong> care programul ruleaza. <strong>Java</strong> prev<strong>in</strong>e acest tip de<br />
probleme pr<strong>in</strong> desemnarea unei valori predef<strong>in</strong>ite fiecarei variabile ne<strong>in</strong>itializate. Valorile<br />
predef<strong>in</strong>ite sunt date <strong>in</strong> functie de tipul variabilei, cum se arata <strong>in</strong> Tabelul J.3.8.<br />
Tabelul J.3.8. Valori predef<strong>in</strong>ite standard pentru tipurile primitive d<strong>in</strong> <strong>Java</strong>.<br />
Primitiva Valoare predef<strong>in</strong>ita<br />
byte 0<br />
short 0<br />
<strong>in</strong>t 0<br />
long 0L<br />
float 0.0f<br />
double 0.0d<br />
char null<br />
boolean false<br />
toate refer<strong>in</strong>tele<br />
J.3.3.5. Conversii <strong>in</strong>tre tipurile primitive<br />
null<br />
In <strong>Java</strong>, se poate converti explicit o variabila de un tip <strong>in</strong> alt tip ca mai jos:<br />
float fRunsScored = 3.2f;<br />
<strong>in</strong>t iRunsScored = (<strong>in</strong>t)fRunsScored;<br />
In acest caz, valoarea <strong>in</strong> virgula mobila 3.2, care este pastrata <strong>in</strong> fRunsScored va fi transformata<br />
<strong>in</strong>tr-un <strong>in</strong>treg si pusa <strong>in</strong> iRunsScored. Cand se transforma <strong>in</strong> <strong>in</strong>treg, partea fractionara a lui<br />
fRunsScored va fi trunchiata asa <strong>in</strong>cat iRunsScored va fi egal cu 3.<br />
Acesta este un exemplu a ceea ce se numeste conversie pr<strong>in</strong> trunchiere. O conversie pr<strong>in</strong><br />
trunchiere poate pierde <strong>in</strong>formatii despre amplitud<strong>in</strong>ea sau precizia unei valori, cum s-a vazut <strong>in</strong> acest<br />
caz. Trebuie <strong>in</strong>totdeauna avuta grija cand se scriu conversii pr<strong>in</strong> trunchiere d<strong>in</strong> cauza potentialului<br />
ridicat de risc de a pierde date.<br />
Celalalt tip de conversie se numeste conversie pr<strong>in</strong> ext<strong>in</strong>dere. O conversie realizata pr<strong>in</strong> ext<strong>in</strong>dere<br />
poate duce la pierdere de precizie, dar nu va pierde <strong>in</strong>formatii despre amplitud<strong>in</strong>ea valorii. In general,<br />
conversiile realizate pr<strong>in</strong> ext<strong>in</strong>dere sunt mai sigure. Tabelul J.3.9 prez<strong>in</strong>ta conversiile realizate pr<strong>in</strong><br />
ext<strong>in</strong>dere care sunt posibile <strong>in</strong>tre tipurile primitive d<strong>in</strong> <strong>Java</strong>.<br />
Tabelul J.3.9. Conversiile realizate pr<strong>in</strong> ext<strong>in</strong>dere <strong>in</strong>tre tipurile primitive disponibile <strong>in</strong> <strong>Java</strong>.<br />
D<strong>in</strong> In<br />
byte short, <strong>in</strong>t, long, float, or double<br />
short <strong>in</strong>t, long, float, or double<br />
char <strong>in</strong>t, long, float, or double<br />
<strong>in</strong>t long, float, or double<br />
long float or double<br />
float double