Maison >Java >javaDidacticiel >Conversion de types en Java
Une fois que les variables et constantes de différents types seront rassemblées dans une expression, elles peuvent être transformées en un type similaire. Cette technique de transformation d'un seul type prédéfini en un autre est connue sous le nom de conversion de type en Java.
Commencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Il existe 2 types de conversion différents que nous utilisons dans les langages de programmation.
Si la conversion de type est effectuée instantanément via le compilateur sans la participation du programmeur, la conversion de type est appelée conversion de type implicite. Le compilateur encourage fondamentalement chaque opérande vers le type de données du plus grand opérande. Aucune perte de données ne se produit tout au long de la conversion des données. Aucune chance de lever une exception lors de la conversion et est donc connue sous le nom de type sécurisé. La conversion d'une quantité plus petite ou d'un nombre beaucoup plus grand peut être une conversion implicite. Transformation de données de type entier en flottant.
float i=0; int j=10; i=j;
// Cela peut être une transformation implicite puisque float peut être plus grand qu'un entier, donc pas de manque de données Et aussi pas d'exception.
La conversion de type, qui peut être appliquée via le programmeur, est connue sous le nom de conversion de type explicite. fondamentalement, le programmeur fait qu'une expression devienne d'un type particulier. La transformation de type explicite peut être connue sous le nom de transtypage. La perte de données peut se produire ou non lors de la conversion des données. Il existe donc une probabilité de perte de détails. il pourrait générer une erreur s'il tentait peut-être de fonctionner sans transtypage. La transformation d'un nombre plus grand en nombres de plus petite taille peut être une conversion explicite.
float k=123.456 int i= (int) k
// cela peut être une conversion explicite ainsi que (int) est un transtypage, un opérateur. À ce stade, nous parviendrons peut-être à échapper à une exception, mais vous pourrez constater une perte visible de données. c'est-à-dire i=123
// .456 peut être supprimé dans le processus de conversion
Comme les autres langages de programmation, il existe 2 types de conversion en java :
Exemples de conversion de type mentionnés ci-dessous en détail :
Code :
Nous avons un programme simple ici, une déclaration en haut, float, double, byte, short et long, et les variables sont chacune nommées pour aider à identifier leurs types. float est floatVal,
Code :
long est longVal
Code :
Et le programme imprime simplement un message de réussite s'il s'exécute.
Voyons donc comment une partie de la conversion de type entre en jeu ici. Alors tout d’abord, allons-y et créons une variable. Nous avons court, et nous l'appellerons simplement le résultat.
En fait, allons-y et appelons cela résultat1. Et faisons simplement une tâche simple. Et donc d’abord, nous allons simplement lui attribuer le byteVal. Maintenant, comme nous nous y attendons, si nous allons de l'avant et exécutons cela, alors exécutons-le avec succès.
Code :
Sortie :
Nous savons que c'est une affectation valide car un octet peut être attribué à un short car il s'agit d'une conversion élargie.
Si nous prenons ce byteVal, cependant, et que nous en faisons un longVal à la place, alors maintenant c'est en fait un long ; si nous exécutons ceci, nous obtenons ici un message d'erreur indiquant un type incompatible, une perte possible de la conversion de long à court.
Code :
Donc, ce que nous pouvons faire ici, c'est faire un casting explicite. Nous allons simplement mettre court devant cela. Alors maintenant, c'est valide, nous pouvons donc l'exécuter.
Code :
Et bien sûr, ça marche. Parce que le long ne pouvait pas devenir court parce que c'était une conversion restrictive.
Sortie :
Mais en mettant le casting explicite devant, maintenant c'est valable. Si nous le voulons, nous pouvons mettre une notation de transtypage très explicite et dire que vous savez, nous savons que même si une conversion d'octets est légale, nous voulons montrer explicitement que nous la transtypons en y mettant le short cast, nous pouvons le faire ça, et c'est tout à fait légal.
Code :
Sortie :
Alors maintenant, regardons un autre scénario. Nous allons créer une autre variable que nous appellerons result2, et result2 est également court. Et ce que nous voulons faire ici, c'est simplement prendre notre byteVal, et nous voulons soustraire le longVal. Maintenant, nous savons que ce n'est pas légal car le résultat de l'expression sera la taille du plus grand entier qu'elle contient, qui est la longueur.
Code :
Donc, si nous exécutons ceci, nous obtenons une erreur indiquant qu'il n'est pas valide de convertir un long en un short.
Mais disons que nous voulons aller de l’avant et garder ce résultat aussi court. Nous devons faire un casting. Mais nous voulons ici définir ce temps comme la valeur du résultat total. Donc, ce que nous allons faire, c'est mettre le court métrage devant ici.
Mettez le court-métrage devant ici. Et mettez le tout entre parenthèses. Et exécutez-le.
Code :
Il fonctionnera avec succès.
Sortie :
Déclarez maintenant une autre variable appelée result3, mais déclarez celle-ci comme étant longue. Nous avons donc obtenu le résultat 3, et que ferons-nous ici, c'est que nous attribuerons notre longVal – floatVal. Nous exécutons donc cela, l'erreur est perdue lors de la conversion de float en long car chaque fois que nous avons un type entier et n'importe quel type à virgule flottante, le résultat sera le type à virgule flottante.
Code :
Alors allons-y et convertissons maintenant notre résultat en flottant. Donc, en en faisant un flotteur, nous devrions pouvoir aller de l'avant et l'exécuter. Et courez avec succès.
Code :
Sortie :
Mais maintenant, si nous prenons le floatVal ici et que nous le convertissons en doubleVal, et si nous essayons de l'exécuter, nous obtenons l'erreur car il dit que le résultat sera un double parce que lorsque vous faites un entier et une virgule flottante, c'est la taille de la plus grande virgule flottante de l'équation.
Code :
Alors allons-y et faisons de ce résultat un double, alors maintenant nous pouvons l'exécuter.
Code :
Sortie :
1. Les variables sont fortement typées en Java
2. Types primitifs
3. Conversion de types
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!