Junior
Čo je to typové prevedenie (casting) v Jave?
sobes.tech AI
Odpoveď od AI
Prevod typov (casting) v Jave je pretvorba hodnoty jedného dátového typu na iný dátový typ.
Druhy prekladov:
- Explicitný (zrejmý) casting: Vykonáva ho programátor pomocou operátora
(typ). Používa sa na konverziu z "väčšieho" typu na "menší" (napríklad zdoublenaint). Môže viesť ku strate dát.// implicitná konverzia (automatická) int a = 10; double b = a; // int na double // explicitná konverzia (zrejmá) double c = 10.5; int d = (int) c; // double na int, d bude 10 - Implicitná (automatická) konverzia (Widening Conversion): Vykonáva sa automaticky JVM, keď sa konvertuje z "menšieho" na "väčší" typ (napríklad z
intnadouble). Je bezpečná a nevedie ku strate dát.int x = 10; double y = x; // int automaticky na double
Prevod typov môže prebiehať medzi primitívnymi typmi alebo medzi objektmi v hierarchii dedičnosti.
Pri prevode objektov:
- Upcasting: Konverzia podtriedy na jej supertriedu. Je implicitná a bezpečná.
class Animal {} class Dog extends Animal {} Animal animal = new Dog(); // Upcasting - Downcasting: Konverzia supertriedy na jej podtriedu. Vyžaduje explicitnú konverziu a môže spôsobiť
ClassCastExceptionpočas behu, ak objekt nie je skutočne inštanciou cieľovej podtriedy.Animal animal = new Dog(); // Upcasting // Downcasting - vyžaduje explicitnú konverziu a kontrolu pomocou instanceof if (animal instanceof Dog) { Dog dog = (Dog) animal; // Teraz je možné používať metódy špecifické pre Dog }