29.04.2013 Views

J. Introducere in limbajul Java - Discipline

J. Introducere in limbajul Java - Discipline

J. Introducere in limbajul Java - Discipline

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!