[Connaissance de base de Java] À propos de la conversion de type

introduction

Cet article est

Pour ceux qui disent.

Les types et les variables sont décrits dans les articles suivants. [Connaissance de base de Java] À propos des types et des variables

Conversion de type de base (type primitif)

Voici comment convertir une variable de type de base en une autre variable de type de base.

Type de base de source de conversion Type de base de destination de modification pouvant être converti
char int, long, float, double
byte short, int, long, float, double
short int, long, float, double
int long, float, double
long float, double
float double
double Aucun

Petit à grand moule

Le type de données entier est byte < short < int < long C'est une sensation de taille. Lors de la conversion d'un petit type à un grand type, il y a ** lorsque le type est converti automatiquement ** et ** un cast où le programmeur convertit intentionnellement.

Lorsque le type est converti automatiquement

    byte a = 127;
    short b = a;
    System.out.println(b);//Résultat de sortie = 127

    short c = 32767;
    long d = c;
    System.out.println(d);//Résultat de sortie = 32767
Cast que le programmeur transforme intentionnellement

    byte a = 127;
    byte b = 127;
    System.out.println((long)a + b);//Résultat de sortie = 254

    int c = 2147483647;
    int d = 2147483647;
    System.out.println((long)c + d);//Résultat de sortie = 4294967294

Grand à petit moule

Soyez prudent lors de la conversion de types grands à petits.

J'obtiens une erreur si je fais ce qui suit.

    long a = Long.MAX_VALUE;//Remplacer la valeur maximale de long
    System.out.println(a);//Résultat de sortie = 9223372036854775807
    short b = a;//Type mismatch: cannot convert from long to short

Il existe un moyen de corriger l'erreur, mais le contenu de la variable changera. Si la taille dépasse la taille que le type de données peut avoir, les données seront tronquées (débordement de données) et le résultat d'exécution attendu ne sera pas obtenu.

    long a = Long.MAX_VALUE;//Remplacer la valeur maximale de long
    System.out.println(a);//Résultat de sortie = 9223372036854775807
    short b = (short) a;//Conversion de type par distribution
    System.out.println(b);//Résultat de sortie =-1

Conversion de type de référence

Cette fois, je n'expliquerai que la conversion de type des types de classe. La figure ci-dessous montre le type de référence de destination de conversion et les règles de conversion de type lorsque le type de référence de source de conversion est un type de classe.

Type de référence de la destination de conversion Règles de conversion de type
Type de classe 変換先のType de classeが変換元のType de classeのスーパークラスであること。
Type d'interface 変換先のType d'interfaceのインタフェースを変換元のクラス型のクラスが実装していること。
Type de tableau La conversion de type n'est pas possible.

** Conversion de type implicite de type de référence ** Variable de type de classe parent = nouvelle classe enfant ();

//Classe parent
class Oya {
  void greet() {
    String a = "Bonjour";
      System.out.println(a);
  }
}

//Classe enfant qui hérite de la classe parent
class Kodomo extends Oya {
  void name() {
    String b = "Iniesta";
      System.out.println(b);
  }
  public static void main(String[] args) {
      Oya oy = new Kodomo();
      oy.greet();//Résultat de sortie = bonjour
      Oya oy2 = new Oya();
      oy2.greet();//Résultat de sortie = bonjour

      Kodomo ko = new Kodomo();
      ko.greet();//Résultat de sortie = bonjour
      ko.name();//Résultat de sortie = Iniesta
      Kodomo ko2 = new Oya();//Erreur: incompatibilité de type: cannot convert from Oya to Kodomo

  }
}

Comme vous pouvez le voir dans l'erreur Variable de type de classe enfant = nouvelle classe parent (); Vous ne pouvez pas.

Conversion en chaîne

Il est possible de convertir tous les types en types de caractères.

    Integer a1 = 123;
    String s1 = "Ah" + a1;
    System.out.println(s1);//Résultat de sortie = A 123
    System.out.println(s1 instanceof String);//Résultat de sortie = vrai


    int a2 = -123;
    String s2 = String.valueOf(a2);
    System.out.println(s2);//Résultat de sortie =-123
    System.out.println(s2 instanceof String);//Résultat de sortie = vrai

finalement

Je n'ai pas une compréhension approfondie de la conversion de type de référence, Je l'ajouterai dès que je l'aurai compris.

Alors merci ☕️

Recommended Posts

[Connaissance de base de Java] À propos de la conversion de type
[Connaissance de base de Java] Portée des variables
Conversion de type Java
Connaissances de base Java 1
[Java] Type de données ①-Type de base
[Java] Conversion de type de date
[Introduction à Java] À propos de la conversion de type (distribution, promotion)
Revue Java ③ (utilisation de base des tableaux / type de référence)
[Java] Conversion de type de liste / type de tableau
[Java] Comparaison de la vitesse de conversion de type
Introduction à Java pour les débutants Connaissance de base du langage Java ①
A propos du type de données de base Java et de la mémoire du type de référence
Java Primer Series (conversion de type)
À propos de la conversion pleine largeur ⇔ demi-largeur des chaînes de caractères en Java
[Java] Différence entre l’affectation d’une variable de type de base et l’affectation d’une variable de type de référence
À propos de Biocontainers fastqc et Java
À propos de Lambda, Stream, LocalDate de Java8
Connaissance de base de Ruby on Rails
Utilisation de base de Java Facultatif Partie 1
Flux de traitement de base de Java Stream
[Java] Comparaison correcte du type String
Structure de base du code source Java
Notions de base
[Java Siler] À propos de l'inférence de type par var
[Java] Conversion de type implicite (somme AOJ10 de nombres)
Conversion de type de données de date Java (date, calendrier, chaîne)
[Explication facile à comprendre! ] Conversion de type de type de référence en Java
Etude Java n ° 3 (conversion de type et exécution d'instruction)
[Java] Résumé personnel des instructions conditionnelles (basique)
Exemple d'utilisation d'ArAutoValueConverter (conversion de type de champ)
Résumé Java des conversions de types fréquemment recherchées
Conversion de type Java 8 LocalDateTime (String, java.util.Date)
[Java] Mécanisme de calcul, opérateurs et conversion de type
Conversion de type du type java Big Decimal au type String
À propos de l'interface Java
[Java] À propos des fonctionnalités de Java 12
Façon de penser lors de l'étude des connaissances de base du programme
Résumé des connaissances Java
Mécanisme de conversion de type de données flexible de la bibliothèque de mappage O / R Lightsleep pour Java 8
Conseils de base inconnus de manière inattendue sur StringBuilder [Java / C #]
[Pour les débutants] Introduction à Java Connaissance de base du langage Java ③ Tableau, structure de sélection, structure itérative
A propos de l'ordre de description des propriétés système Java
À propos de l'idée des classes anonymes en Java
[Ruby] Connaissance de base des variables d'instance de classe, etc.
Grammaire de base Java
À propos du type de date / heure de la classe d'entité de Doma2
[Java] Type d'énumération
Grammaire Java de base
Java Type facultatif
À propos de var utilisé en Java (type de variable locale)
Quelque chose à propos de java
Où est Java
À propos des fonctionnalités Java
[Java] Structure de base
À propos des threads Java
Interface [Java]