Cast
Cast-ul reprezintă transformarea unui tip de date în alt tip (în engleză type casting). Acesta este de 2 tipuri: implicit şi explicit. Vom discuta fiecare tip în parte, astfel încât sa înţelegi cum se aplică acest mecanism.
Cast-ul implicit
Acesta se produce automat când transformăm un tip de date specific, mai "mic", într-unul generic, mai "mare", care poate reţine mai multă informaţie.
Exemplu: int
reţine doar numere întregi, iar double
şi pe cele reale. Putem transforma o valoare int
într-un double
fără să pierdem informaţie. În acest caz se va produce un cast implicit.
int k = 7; double d = k; System.out.println(d); // va afisa 7.0
Cast-ul explicit
Cast-ul explicit este practic inversul celui implicit. Acesta se produce când putem avea pierderi de informaţii şi va trebui să îi specificăm programului că suntem de acord să pierdem această informaţie.
Exemplu: o variabilă de tip double
poate avea zecimale. Dacă vrem sa o reţinem într-un int
, informaţia legată de zecimale se va pierde, deci este necesar un cast explicit.
double h = 6.97; int k = (int) h; // cast explicit, pierdem numerele de după virgulă System.out.println(k); // va afişa valoarea 6
boolean
, String
sau Scanner
, de exemplu, deoarece reprezintă concepte diferite. O să învăţaţi mai târziu cum se aplică acesta pe celelalte tipuri.
Exerciţii
1. S-au comandat 100 de litri de suc de portocale în sticle de câte 1,2 litri. Câte sticle s-au adus?
2. Sunt 20 pasageri într-o maşină. Există 50 de maşini care circulă dimineaţa din Pipera în Berceni. Dacă sunt în total 640 de oameni care vor să ajungă în fiecare dimineaţă din Pipera în Berceni, care este media locurilor libere care rămân în fiecare maşină?