Junior
Šta je kastovanje (casting) u Javi?
sobes.tech АИ
Одговор од АИ
Prevođenje tipova (casting) u Javi je konverzija vrednosti jednog tipa podataka u drugi tip podataka.
Vrste prevođenja:
- Ekslicitno (Explicit Casting): Izvršava ga programer pomoću operatora
(tip). Koristi se za konverziju sa "većeg" na "manji" tip (npr. sadoublenaint). Može dovesti do gubitka podataka.// implicitno prevođenje (automatski) int a = 10; double b = a; // int u double // eksplicitno prevođenje (jasno) double c = 10.5; int d = (int) c; // double u int, d će biti 10 - Implicitno (Automatsko) prevođenje (Widening Conversion): Automatski ga vrši JVM kada se konvertuje sa "manjeg" na "veći" tip (npr. sa
intnadouble). Bezbedno je i ne izaziva gubitak podataka.int x = 10; double y = x; // int automatski u double
Prevođenje tipova može se desiti između primitivnih tipova ili između objekata u hijerarhiji naslednosti.
Kod prevođenja objekata:
- Upcasting: Konverzija podklase u njenu superklasu. Implicitno i sigurno.
class Animal {} class Dog extends Animal {} Animal animal = new Dog(); // Upcasting - Downcasting: Konverzija superklase u njenu podklasu. Zahteva eksplicitnu konverziju i može izazvati
ClassCastExceptiontokom izvršenja ako objekat nije zaista instanca ciljne podklase.Animal animal = new Dog(); // Upcasting // Downcasting - zahteva eksplicitnu konverziju i proveru sa instanceof if (animal instanceof Dog) { Dog dog = (Dog) animal; // Sada se mogu koristiti metode specifične za Dog }