Junior
Qu'est-ce que le casting en Java?
sobes.tech IA
Réponse de l'IA
La conversion de types (casting) en Java est la transformation de la valeur d'un type de données en un autre.
Types de conversion:
- Casting explicite (Explicit Casting): Effectué par le programmeur à l'aide de l'opérateur
(type). Utilisé pour convertir d'un type "plus grand" à un type "plus petit" (par exemple, dedoubleàint). Peut entraîner une perte de données.// conversion implicite (automatique) int a = 10; double b = a; // int en double // conversion explicite (déclarée) double c = 10.5; int d = (int) c; // double en int, d sera égal à 10 - Conversion implicite (Implicit Casting / Widening Conversion): Effectuée automatiquement par la JVM lors de la conversion d'un type "plus petit" en un type "plus grand" (par exemple, de
intàdouble). C'est sûr et ne provoque pas de perte de données.int x = 10; double y = x; // int converti automatiquement en double
La conversion de types peut être entre types primitifs ou entre types d'objets dans une hiérarchie d'héritage.
Pour la conversion de types d'objets:
- Upcasting: Conversion d'une sous-classe vers sa super-classe. C'est implicite et sûr.
class Animal {} class Dog extends Animal {} Animal animal = new Dog(); // Upcasting - Downcasting: Conversion d'une super-classe vers sa sous-classe. Nécessite une conversion explicite et peut lancer une
ClassCastExceptionà l'exécution si l'objet n'est pas en réalité une instance de la sous-classe cible.Animal animal = new Dog(); // Upcasting // Downcasting - nécessite une conversion explicite et une vérification avec instanceof if (animal instanceof Dog) { Dog dog = (Dog) animal; // Maintenant, on peut utiliser des méthodes spécifiques à Dog }