Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Java Típuskonverziók
2
A Java erősen típusos nyelv
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
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. konverzió iránya: eszerint megkülön-böztetünk szűkítő vagy bővítő típuskonverziót.
4
Implicit és explicit típuskonverziók
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: (<típus>) <kifejezés>
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
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. 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 bővítő konverziók iránya: byte short int long float double char A konverzió tranzitív.
7
Szűkítő konverziók A szűkítő konverzió adatvesztéssel járhat!!!
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
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: 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: Mindkét operandust a kettő közül a bővebb, de minimum int típussá konvertálja.
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 lon * 1.0 long * double double * double double c / b char / byte int / int
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.