Junior
Ce este casting-ul în Java?
sobes.tech AI
Răspuns de la AI
Conversia tipurilor (casting) în Java este transformarea valorii unui tip de date într-alt tip de date.
Tipuri de conversie:
- Conversie explicită (Explicit Casting): Se face de către programator folosind operatorul
(tip). Se folosește pentru a converti de la un tip "mai mare" la un tip "mai mic" (de exemplu, de ladoublelaint). Poate duce la pierderea datelor.// conversie implicită (automat) int a = 10; double b = a; // int la double // conversie explicită (declarată) double c = 10.5; int d = (int) c; // double la int, d va fi 10 - Conversie implicită (Implicit Casting / Widening Conversion): Se face automat de JVM atunci când se convertește de la un tip "mai mic" la un tip "mai mare" (de exemplu, de la
intladouble). Este sigură și nu duce la pierderea datelor.int x = 10; double y = x; // int convertit automat în double
Conversia tipurilor poate avea loc între tipuri primitive sau între tipuri de obiecte în ierarhia de moștenire.
Pentru conversia tipurilor de obiecte:
- Upcasting: Convertirea unei subclase în superclasa sa. Este implicită și sigură.
class Animal {} class Dog extends Animal {} Animal animal = new Dog(); // Upcasting - Downcasting: Convertirea unei superclase în subclasa sa. Necesită o conversie explicită și poate arunca
ClassCastExceptionîn timpul execuției dacă obiectul nu este de fapt o instanță a subclasei țintă.Animal animal = new Dog(); // Upcasting // Downcasting - necesită o conversie explicită și verificare cu instanceof if (animal instanceof Dog) { Dog dog = (Dog) animal; // Acum se pot folosi metode specifice pentru Dog }