Conversions De Types
đ Conversion implicite vs explicite en Java
La conversion permet de changer le type dâune donnĂ©e pour lâadapter Ă une autre variable ou expression.
1. Conversion implicite (promotion automatique)
- Java effectue automatiquement la conversion quand il nây a pas de risque de perte de donnĂ©es.
- Se produit souvent quand on passe dâun type plus petit Ă un type plus grand.
Exemples classiques :
| De | Vers | Exemple |
|---|---|---|
int | double | double d = 5; |
byte | int | int x = 10; |
int a = 10;
double b = a; // Conversion implicite2. Conversion explicite (casting)
- Nécessaire quand il y a un risque de perte de données ou incompatibilité.
- Le programmeur doit forcer la conversion avec un cast
(type).
Exemples classiques :
| De | Vers | Exemple |
|---|---|---|
double | int | int x = (int) 9.99; |
long | int | int y = (int) 100000L; |
double x = 9.99;
int y = (int) x; // Conversion explicite, décimale perdue3. Différences clés
| Aspect | Conversion implicite | Conversion explicite |
|---|---|---|
| Nécessite une action ? | Non, automatique | Oui, cast obligatoire (type) |
| Risque de perte | Non | Oui |
| Sens | Du plus petit au plus grand | Du plus grand au plus petit |
| Exemples | int â double | double â int |
4. En résumé
- Conversion implicite = sûre, automatique, du type petit vers grand.
- Conversion explicite = risquée, forcée, du type grand vers petit.
- Utilise toujours le casting explicite pour éviter les erreurs de compilation.
đ§ Ă retenir
- Java convertit tout seul quand câest sĂ»r.
- Pour tout ce qui peut perdre des infos, il faut caster manuellement.
- Sois vigilant avec les conversions explicites, elles peuvent tronquer ou modifier la valeur.
Conversion_des_types
Le terme le plus utilisé pour la technique de conversion est « Casting ».
Cas 1
Conversion 1 : String vers les numériques

Conversion 2 : Les numériques vers une String en utilisant la méthode valueOf()

Conversion 3 : Les numériques vers une String en utilisant la méthode toString()

Conversion 4 : String vers les primitifs

Conversion 5 : Primitifs vers String

Conversion 6 : Les primitifs vers une String en utilisant la méthode valueOf()

Automatique vs manuelle
Conversion automatique : il sâagit dâune conversion d’un type plus petit en un type plus grand
byte -> short -> char -> int -> long -> float -> double

Cas 2
Conversion manuelle :
il sâagit de la conversion d’un type plus grand en un type de taille plus petite. Il suffit de rajouter le casting du type voulu Ă droite.
double -> float -> long -> int -> char -> short -> byte double d = 2000.23; float f = (float)d; long l = (long) f;
Quand on diminue la taille il y a parfois une perte d’information comme si l’on passe de float Ă int:
float a = 4.53F;
System.out.println((int) a);
//4Pour résumer :
- Dans le cas dâune conversion de petit vers grand â on ne fait rien.
- Dans le cas dâune conversion dâun grand vers un petit â il faut « Caster » la partie droite en type du petit.
đ§Ș Exercice 1 : Fusion de types
Objectif : Comprendre la promotion automatique des types.
đ§Ÿ Consignes :
- Crée une variable
byteavec une valeur (ex.byte b = 10;) - Crée une variable
intet affecte-lui la valeur deb(sans cast) - Affiche la valeur de lâint
- Explique dans un commentaire pourquoi ça fonctionne sans cast
đ§ Concepts : conversion implicite byte â int
âïž Exercice 2 : Tronquage dâun flottant
Objectif : Observer la perte de donnĂ©es lors dâun cast.
đ§Ÿ Consignes :
- Déclare une variable
doubleavec une valeur décimale (ex.double d = 123.456;) - Caste-la en
intet stocke le résultat dans une nouvelle variable - Affiche les deux valeurs
- Constate la perte des décimales
đ§ Concepts : conversion explicite double â int
đ Exercice 3 : EnchaĂźnement de cast
Objectif : Appliquer plusieurs conversions manuelles successives.
đ§Ÿ Consignes :
- Déclare une variable
doubleavec une valeur (ex.double x = 1000.99;) - Convertis-la en
float, puis enlong, puis enint - Affiche chaque étape
- Observe lâĂ©volution de la donnĂ©e Ă chaque cast
đ§ Concepts : conversion explicite en chaĂźne : double â float â long â int
đ„ Passage d’arguments par la ligne de commande en Java
1. đ Quâest-ce que câest ?
En Java, on peut passer des valeurs à un programme au moment de son exécution, directement depuis la ligne de commande.
Ces valeurs sont appelées arguments et sont transmis au programme via le tableau String[] args de la méthode main.
2. đ Syntaxe
â DĂ©claration classique
public class MonProgramme {
public static void main(String[] args) {
// args est un tableau de chaĂźnes
}
}â ExĂ©cution (en ligne de commande)
java MonProgramme argument1 argument2 argument3Ces
argument1,argument2, etc. seront accessibles dans le tableauargs.
3. đ§Ș Exemple simple
public class ExempleArgs {
public static void main(String[] args) {
System.out.println("Premier argument : " + args[0]);
System.out.println("DeuxiĂšme argument : " + args[1]);
}
}â ïž Important
args[0]= premier argumentargs[1]= deuxiĂšme argumentargs.length= nombre total dâarguments
4. đ Gestion des erreurs
Il faut toujours vérifier la taille du tableau args pour éviter les erreurs :
if (args.length < 2) {
System.out.println("Erreur : il faut au moins 2 arguments.");
return;
}5. đ Conversion de type
Les arguments sont des chaßnes de caractÚres (String) par défaut. Pour utiliser des nombres :
int age = Integer.parseInt(args[0]); // Convertit en int
double taille = Double.parseDouble(args[1]); // Convertit en doubleâ ïž Attention aux erreurs si lâutilisateur entre des valeurs non numĂ©riques.
6. đŻ Utilisation typique
- Fournir des paramĂštres (nom, Ăąge, etc.) Ă un programme.
- ContrĂŽler le comportement du programme (mode test, options, etc.).
- Ăviter de coder en dur des valeurs.
7. đŠ Exemple complet
public class BonjourNom {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("Usage : java BonjourNom <nom>");
return;
}
System.out.println("Bonjour " + args[0] + " !");
}
}đ§ Ă retenir
| ĂlĂ©ment | DĂ©tail |
|---|---|
String[] args | Tableau contenant les arguments |
args.length | Nombre dâarguments passĂ©s |
args[i] | iᔠargument (indexé à partir de 0) |
| Conversion | Utiliser Integer.parseInt(), Double.parseDouble(), etc. |
| Bonne pratique | VĂ©rifier la longueur du tableau avant d’accĂ©der aux Ă©lĂ©ments |
đ§© Exercice 1 : Convertisseur Celsius â Fahrenheit
đŻ Objectif : Lire une tempĂ©rature en degrĂ©s Celsius en argument, et afficher sa conversion en Fahrenheit.
đ§ Consigne :
Le programme prend un seul argument numérique.
Il affiche :
<valeur>°C équivaut à <valeur_fahrenheit>°FUtilise la formule :
F = C Ă 9/5 + 32
đ Exemple attendu :
java Convertisseur 2525°C Ă©quivaut Ă 77.0°Fđ Ajoute une vĂ©rification si aucun argument nâest donnĂ© ou si lâentrĂ©e nâest pas un nombre.
đ§ź Exercice 2 : Nombre pair ou impair
đŻ Objectif : VĂ©rifier si un nombre entier donnĂ© en argument est pair ou impair.
đ§ Consigne :
- Le programme prend un entier en argument.
- Il affiche si le nombre est pair ou non
đ Exemple attendu :
java Parite 41Le nombre est pair? : false