Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Jt Java Típuskonverziók. jt 2 A Java erősen típusos nyelv. Ez azt jelenti, hogy a fordító a típus kompatibilitásának ellenőrzését minden lehetséges esetben.

Hasonló előadás


Az előadások a következő témára: "Jt Java Típuskonverziók. jt 2 A Java erősen típusos nyelv. Ez azt jelenti, hogy a fordító a típus kompatibilitásának ellenőrzését minden lehetséges esetben."— Előadás másolata:

1 jt Java Típuskonverziók

2 jt 2 A Java erősen típusos nyelv. Ez azt jelenti, hogy a fordító a típus kompatibilitásának ellenőrzését minden lehetséges esetben elvégzi. Egy típus kompatibilis egy másik típussal, ha az adott környezetben helyettesíthető vele. Bizonyos műveletek végrehajtása előtt az operandus típusát konvertálni kell egy másik típussá.

3 jt 3 A típuskonverzió jellegét tekintve két szempontból is osztályozhatjuk azt: automatikus (implicit) vagy kényszerített (explicit) konverzió: Az első esetben a konverziót a fordító automatikusan elvégzi, második esetben a programozónak kell azt kikényszeríteni. automatikus (implicit) vagy kényszerített (explicit) konverzió: Az első esetben a konverziót a fordító automatikusan elvégzi, második esetben a programozónak kell azt kikényszeríteni. konverzió iránya: eszerint megkülön- böztetünk szűkítő vagy bővítő típuskonverziót. konverzió iránya: eszerint megkülön- böztetünk szűkítő vagy bővítő típuskonverziót.

4 jt 4 A típuskonverzió implicit, ha azt a fordító automatikusan elvégzi, és explicit, ha azt a programozónak kell elvégeznie. Ez utóbbi esetben típuskényszerítésről beszélünk, s ilyenkor a programozó egy kifejezés értékére „ráerőltet” egy típust: A típuskonverzió implicit, ha azt a fordító automatikusan elvégzi, és explicit, ha azt a programozónak kell elvégeznie. Ez utóbbi esetben típuskényszerítésről beszélünk, s ilyenkor a programozó egy kifejezés értékére „ráerőltet” egy típust: ( ) ( ) Implicit és explicit típuskonverziók

5 jt 5 A kifejezés elé kell tehát írnunk zárójelben azt a típust, amit „rá szerentnénk húzni” az értékre. A típuskényszerítés angol neve type cast, ezért az értéket, ill. változót „castolni (kásztolni)” is szokták. Pl.: double d; int i = 5; d = i; // int konvertálása double típussá implicit módon. Ez bővítés. d = 79.4; i = (int) d; // double konvertálása int típussá explicit módon. Ez szűkítés. i = d; // Szintaktikai hiba!!!

6 jt 6 Bővítő konverziók Primitív típusok esetén egy szűkebb adattípus értéke konvertálható egy bővebb adattípus értékébe információvesztés nélkül. Az ilyen konverziót bővítő konverziónak nevezzük. byte char short intfloatlongdouble Egy int típusú értékre pl. simán ráhúzható a long típus, hiszen az érték bőven belefér egy long típusú „dobozba”, még „lötyög” is benne. A konverzió tranzitív. A bővítő konverziók iránya:

7 jt 7 Szűkítő konverziók Szűkítő konverzióról akkor beszélünk, ha egy bővebb típusból szűkebb típusba konvertálunk. A szűkítő konverzió adatvesztéssel járhat!!! adatvesztéssel

8 jt 8 Numerikus operátorok típuskonverziói A Java a numerikus operátorok operandusait kiértékelés előtt a következő szabályok szerint automatikusan konvertálja: Unáris (egy operandusú) műveletek esetén: Unáris (egy operandusú) műveletek esetén: Ha az operandus típusa int int -nél szűkebb, akkor az operandust int típusúvá konvertálja, egyébként nem konvertál. Bináris (két operandusú) műveletek esetén: Bináris (két operandusú) műveletek esetén: Mindkét operandust a kettő közül a bővebb, de minimum int típussá konvertálja.

9 jt 9 Példák Kifejezés Eredeti típusok Konvertált típusok Kifejezés típusa b*s byte * short int * int int i/lon int / long long / long long f + 3 float + int float + float float 12L – s long – short long – long long lon * 1.0 long * double double * double double c / b char / byte int / int int


Letölteni ppt "Jt Java Típuskonverziók. jt 2 A Java erősen típusos nyelv. Ez azt jelenti, hogy a fordító a típus kompatibilitásának ellenőrzését minden lehetséges esetben."

Hasonló előadás


Google Hirdetések