Junior
Mi az a típuskonverzió (casting) Java-ban?
sobes.tech MI
Válasz az MI-től
A típuskonverzió (casting) Java-ban az egyik adattípus értékének átalakítása egy másik adattípus értékévé.
A konverzió típusai:
- Kifejezett (Explicit Casting): A programozó
(típus)operátorával végzi. Használható a "nagyobb" típusból a "kisebb" típusba való átalakításra (pl.double-rőlint-re). Ez adatvesztést okozhat.// implicit konverzió (automatikus) int a = 10; double b = a; // int-ről double-ra // explicit konverzió (meghatározott) double c = 10.5; int d = (int) c; // double-ről int-re, d értéke 10 lesz - Implicit (Automatikus) típuskonverzió (Widening Conversion): Automatikusan végrehajtódik a JVM által, amikor egy "kisebb" típusból egy "nagyobb" típusba konvertálunk (pl.
int-rőldouble-re). Biztonságos, és nem okoz adatvesztést.int x = 10; double y = x; // int automatikusan double lesz
A típuskonverzió lehet primitív típusok vagy objektumtípusok között is, az öröklődési hierarchiában.
Objektumtípusok közötti konverzió:
- Upcasting: Egy alosztályt a szuperosztályába konvertálunk. Implicit és biztonságos.
class Animal {} class Dog extends Animal {} Animal animal = new Dog(); // Upcasting - Downcasting: Egy szuperosztályt az alosztályába konvertálunk. Explicit konverziót igényel, és futásidőben
ClassCastException-t okozhat, ha az objektum nem valódi példánya a céltípusnak.Animal animal = new Dog(); // Upcasting // Downcasting - explicit konverzió és instanceof ellenőrzés if (animal instanceof Dog) { Dog dog = (Dog) animal; // Most már használhatók a Dog-specifikus metódusok }