Junior
Kas yra tipų konvertavimas (casting) Java kalboje?
sobes.tech AI
Atsakymas iš AI
Tipų konvertavimas (casting) Java yra vieno duomenų tipo reikšmės konvertavimas į kitą duomenų tipą.
Konvertavimo tipai:
- Aiškus (Explicit Casting): Atliktas programuotojo naudojant
(tipas)operatorių. Naudojamas konvertuojant iš "didesnio" tipo į "mažesnį" (pavyzdžiui,doubleįint). Gali sukelti duomenų praradimą.// automatinis konvertavimas int a = 10; double b = a; // int į double // aiškus konvertavimas double c = 10.5; int d = (int) c; // double į int, d bus lygus 10 - Nepastebimas (Implicit Casting / Widening Conversion): JVM automatiškai atlieka, kai vyksta konvertavimas iš "mažesnio" tipo į "didesnį" (pavyzdžiui,
intįdouble). Saugu, nekelia duomenų praradimo.int x = 10; double y = x; // int automatiškai konvertuojamas į double
Tipų konvertavimas gali būti tarp primityvių tipų arba tarp objektinių tipų hierarchijoje.
Kalbant apie objektinius tipus:
- Upcasting: Subklasės konvertavimas į jos superklasę. Yra nepastebimas ir saugus.
class Animal {} class Dog extends Animal {} Animal animal = new Dog(); // Upcasting - Downcasting: Superklasės konvertavimas į jos subklasę. Reikalauja aiškaus konvertavimo ir gali sukelti
ClassCastExceptionvykdymo metu, jei objektas iš tikrųjų nėra tikslios subklasės egzempliorius.Animal animal = new Dog(); // Upcasting // Downcasting - reikalauja aiškaus konvertavimo ir `instanceof` patikrinimo if (animal instanceof Dog) { Dog dog = (Dog) animal; // Dabar galima naudoti Dog specifinius metodus }