Maison  >  Article  >  Java  >  Conversion de types en Java

Conversion de types en Java

PHPz
PHPzoriginal
2024-08-30 15:12:18691parcourir

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

Conversion de types

Il existe 2 types de conversion différents que nous utilisons dans les langages de programmation.

Conversion de types en Java

1. Conversion de type implicite

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.

2. Conversion de type explicite

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

Conversion de types en Java

Comme les autres langages de programmation, il existe 2 types de conversion en java :

Conversion de type implicite

  • Il s'agit généralement de ce que nous appelons la conversion élargie, et celles-ci peuvent être effectuées automatiquement car nous nous dirigeons vers des types de données plus larges. Donc, si nous avons un entier de 32 bits et que nous voulons passer à un entier de 64 bits, c'est plus large. Ainsi, la valeur peut être déplacée en toute sécurité afin que cela puisse être fait implicitement. Le compilateur doit décider comment effectuer ces conversions, et les règles sont assez simples.
  • Si nous avons une expression contenant plusieurs tailles entières (mixtes), si nous avons des valeurs courtes et longues, quelle que soit la plus grande taille entière, les choses la convertiront en. Donc si nous effectuons une opération avec un short et un long, le short sera implicitement intégré.
  • Si nous effectuons une opération avec des tailles à virgule flottante mixtes, donc nous avons un float et un double, ils iront toujours au double car double est la plus grande taille à virgule flottante.
  • Et puis, si nous avons une opération qui utilise des types entiers mixtes et des types à virgule flottante, le compilateur convertira en la plus grande virgule flottante de l'équation. Donc si on fait une opération avec un long et à flot, le long sera mis à flot.
  • Si on fait une opération avec un long et un double, le long sera alors converti en double.

Conversion de type explicite

  • Nous effectuons explicitement dans notre code lors de l'utilisation de cette opération de conversion. En faisant cela, nous assumons la responsabilité de tout ce qui pourrait résulter de ce type de conversion. Pour cette raison, nous pouvons effectuer à la fois une conversion élargie et étroite. Il s'élargit de 32 bits à 64 bits, se rétrécissant, passant de 64 bits à 32 bits. Nous devrions simplement vouloir être conscients que nous savons ce qui pourrait potentiellement arriver.
  • Si nous effectuons une conversion explicite d'une virgule flottante en un entier, les virgules flottantes peuvent donc avoir une partie fractionnaire, mais pas un entier, donc toute partie fractionnaire sera supprimée lorsque nous convertirons ce flottant en un entier.
  • Vous devez être prudent lorsque vous effectuez une conversion restrictive. Si nous avons un entier de 64 bits, il a la capacité de contenir des valeurs trop grandes pour tenir dans un entier de 32 bits.
  • Donc, si nous convertissons ce 64 bits en 32 bits, le programme le fera réellement, mais si la valeur est trop grande pour tenir dans un 32 bits, vous obtiendrez des résultats étranges. Vous voulez donc vous assurer que lorsque vous le lancez en effectuant un casting rétrécissant, vous savez que ce que vous faites est sûr.
  • Et le dernier est juste que vous devez être prudent lors de la conversion d'un entier en virgule flottante, car si vous avez un entier avec un grand nombre de chiffres significatifs, en raison de la façon dont la virgule flottante est stockée, vous pourriez perdre certains de ces chiffres significatifs.

Exemples de conversion de type

Exemples de conversion de type mentionnés ci-dessous en détail :

Code :

Conversion de types en Java

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 :

Conversion de types en Java

long est longVal

Code :

Conversion de types en Java

Et le programme imprime simplement un message de réussite s'il s'exécute.

Conversion de types en Java

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 :

Conversion de types en Java

Sortie :

Conversion de types en Java

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 :

Conversion de types en Java

Conversion de types en Java

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 :

Conversion de types en Java

Et bien sûr, ça marche. Parce que le long ne pouvait pas devenir court parce que c'était une conversion restrictive.

Sortie :

Conversion de types en Java

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 :

Conversion de types en Java

Sortie :

Conversion de types en Java

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 :

Conversion de types en Java

Donc, si nous exécutons ceci, nous obtenons une erreur indiquant qu'il n'est pas valide de convertir un long en un short.

Conversion de types en Java

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 :

Conversion de types en Java

Il fonctionnera avec succès.

Sortie :

Conversion de types en Java

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 :

Conversion de types en Java

Conversion de types en Java

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 :

Conversion de types en Java

Sortie :

Conversion de types en Java

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 :

Conversion de types en Java

Conversion de types en Java

Alors allons-y et faisons de ce résultat un double, alors maintenant nous pouvons l'exécuter.

Code :

Conversion de types en Java

Sortie :

Conversion de types en Java

Conclusion

1. Les variables sont fortement typées en Java
2. Types primitifs

  • Types entiers, types à virgule flottante, type char, type booléen

3. Conversion de types

  • Nous devons souvent passer d'un type à l'autre, car à mesure que nos programmes, à mesure qu'ils deviennent plus complexes, impliqueront probablement plusieurs types de données.
  • Le compilateur peut gérer les conversions de types qui s'élargissent, passant d'un type à un autre pouvant contenir des valeurs plus grandes,
  • Mais vous pouvez également utiliser le casting pour effectuer explicitement les types de conversions que le compilateur ne peut pas effectuer automatiquement.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Architecture des servletsArticle suivant:Architecture des servlets