"És most a legérdekesebb rész. Mesélek a típuskonverziókról. A változók nem változtathatják meg a típusukat, de van egy hely, ahol típusokat konvertálhat. Ez a hely egy hozzárendelési művelet . "

"Különböző típusú változókat rendelhet egymáshoz. Ennek során az egyik változó (egy adott típusú) értéke a másik típusú értékké alakul, és hozzárendelődik a másik változóhoz. "

"Kétféle konverziót különböztethetünk meg: a primitív konverziók szélesítése és a primitív konverziók szűkítése. A szélesítés olyan, mintha a dolgokat egy kis kosárból egy nagyba helyeznénk át. Az eljárás nem figyelemre méltó és fájdalommentes. A szűkítés analóg a dolgok nagy kosárból való kiemelésével. és berakja őket egy kisebbbe. Ha ezt teszi, előfordulhat, hogy nem lesz elég hely; előfordulhat, hogy ki kell dobnia valamit. "

"Íme a típusok "kosárméretük" szerint rendezve:"

Típus konverzió

"Csak néhány megjegyzés:

1. A char kosara akkora, mint a shorté, de nem lehet szabadon mozgatni a dolgokat egyikből a másikba. Amikor az értékeket rövidről char értékre helyezi át , a 0-nál kisebb értékek mindig elvesznek. Amikor az értékeket karakterről rövidre helyezi át, a 32 000-nél nagyobb értékek elvesznek.

2. Ha egész számokat tört számokká alakít, előfordulhat, hogy a szám legkisebb jelentőségű számjegyei kikerülnek. Ez azonban elfogadható, mivel a törtszám célja egy közelítő érték tárolása."

" Szűkítő konverziók végrehajtásakor kifejezetten közölnünk kell a fordítóval, hogy nem hibáztunk: szándékosan dobjuk el a szám egy részét. Ehhez egy cast operátort ( pl. a típusnév zárójelben ) használunk ."

"Így kell hozzárendelni a különböző típusú változókat:"

Java kód Leírás
byte a = 115;
int b = a;
Kiszélesedő primitív konverzió. Minden nagyszerű.
int c = 10000;
byte d = (byte) c;
A primitív konverzió szűkítése . Kifejezetten ki kell jelentenünk, hogy a plusz bájtokat el kell dobni.
int c = 10;
byte d = (byte) c;
Szűkülő primitív konverzió. Kifejezetten ki kell jelentenünk, hogy a plusz bájtokat el kell dobni, még akkor is, ha 0-val egyenlők.
float f = 10000;
long l = (long) (f * f);
float f2 = l;
long l2 = (long) f2;
Lebegőhöz való hozzárendeléskor szélesedő primitív konverzió megy végbe. Amikor egy lebegőt hosszúhoz rendelünk, szűkülő primitív konverzió megy végbe. Egy cast operátor szükséges.
double d = 1;
float f = (float) d;
long l = (long) f;
int i = (int) l;
short s = (short) i;
byte b = (byte) s;
Konverziók szűkítése minden hozzárendelési műveletben, kivéve az első sort. Ezek az átalakítások megkövetelik, hogy kifejezetten jelezzük a típuskonverziót.

" A cast operátort egy szám/változó elé kell helyezni, amikor a szám egy része eldobásra kerül, vagy ha szűkülő primitív konverzió történik. A cast operátor csak az őt közvetlenül követő számot/változót érinti."

Java kód Leírás
float f = 10000;
long l = (long) f * f;
A két változó közül csak az egyik adható meg hosszúnak: egy long és egy float szorzata egyenlő lebegővel.
float f = 10000;
long l = (long) (f * f);
Az egész kifejezés hosszúra van vetve.

"Látom."