Junior
O que é o casting em Java?
sobes.tech IA
Resposta da IA
A conversão de tipos (casting) em Java é a transformação do valor de um tipo de dado para outro.
Tipos de conversão:
- Casting explícito (Explicit Casting): Realizado pelo programador usando o operador
(tipo). Usado para converter de um tipo "maior" para um "menor" (por exemplo, dedoubleparaint). Pode causar perda de dados.// conversão implícita (automática) int a = 10; double b = a; // int para double // conversão explícita (declarada) double c = 10.5; int d = (int) c; // double para int, d será igual a 10 - Conversão implícita (Implicit Casting / Widening Conversion): Realizada automaticamente pela JVM ao converter de um tipo "menor" para um "maior" (por exemplo, de
intparadouble). É segura e não causa perda de dados.int x = 10; double y = x; // int convertido automaticamente para double
A conversão de tipos pode ocorrer entre tipos primitivos ou entre tipos de objetos em uma hierarquia de herança.
Para a conversão de tipos de objetos:
- Upcasting: Converter uma subclasse para sua superclasse. É implícito e seguro.
class Animal {} class Dog extends Animal {} Animal animal = new Dog(); // Upcasting - Downcasting: Converter uma superclasse para sua subclasse. Requer uma conversão explícita e pode lançar
ClassCastExceptionem tempo de execução se o objeto na realidade não for uma instância da subclasse alvo.Animal animal = new Dog(); // Upcasting // Downcasting - requer conversão explícita e verificação com instanceof if (animal instanceof Dog) { Dog dog = (Dog) animal; // Agora pode usar métodos específicos de Dog }