Junior
Mis on tüübi konverteerimine (casting) Java-s?
sobes.tech AI
Vastus AI-lt
Tipi konvertācija (casting) Java ir viena tipa vērtības pārvēršana citā tipā.
Veidi:
- ** Skaidra (Explicit Casting):** Veic programmētājs, izmantojot
(tips)operatoru. To izmanto, pārvēršot no "lielāka" tipa uz "mazāku" (piemēram,doubleuzint). Tas var novest pie datu zuduma.// automātiska pārvērtība int a = 10; double b = a; // int uz double // skaidra pārvērtība double c = 10.5; int d = (int) c; // double uz int, d būs 10 - ** Netieša (Implicit Casting / Widening Conversion):** JVM to automātiski veic, kad notiek pārvēršana no "mazāka" tipa uz "lielāku" (piemēram,
intuzdouble). Droši, nerada datu zudumu.int x = 10; double y = x; // int automātiski pārvēršas uz double
Tipu pārvēršana var notikt starp primitiiviem tipiem vai starp objektu tipiem hierarhijā.
Runājot par objektu tipiem:
- Upcasting: Subklasē pārvēršana uz tās superklasi. Ir nepastebama un droša.
class Animal {} class Dog extends Animal {} Animal animal = new Dog(); // Upcasting - Downcasting: Superklases pārvēršana uz tās subklasi. Prasa skaidru pārvēršanu un var izraisīt
ClassCastExceptionizpildes laikā, ja objekts patiesībā nav šīs subklases instances.Animal animal = new Dog(); // Upcasting // Downcasting - prasa skaidru pārvēršanu un `instanceof` pārbaudi if (animal instanceof Dog) { Dog dog = (Dog) animal; // Tagad var izmantot Dog specifiskās metodes }