Classes enveloppes

Types de données et exceptions en Java

Jim White

Java Developer

8 primitifs Java

Les 8 primitifs Java sont les types de base à partir desquels toutes les données sont construites.

Types de données et exceptions en Java

Classes enveloppes

  • Chaque type primitif a une classe enveloppe équivalente
primitive Classe enveloppe
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

Les classes enveloppes permettent de traiter les primitifs comme des objets. Elles sont des sous-classes de Object.

Types de données et exceptions en Java

Envelopper les primitifs

  • Les instances d'une classe enveloppe contiennent un seul primitif
    • Exemple : Integer contient une valeur primitive int

Les objets enveloppes contiennent un primitif comme valeur

Types de données et exceptions en Java

Détails des enveloppes

  • Les classes enveloppes offrent des champs et méthodes en plus
    • Des champs (comme la valeur max) sur le type
    • Des méthodes pour travailler avec le primitif enveloppé
  • Les classes enveloppes font partie du langage de base
    • À utiliser sans import (nous verrons les imports plus tard)
Types de données et exceptions en Java

Créer des objets enveloppes

  • Affectez un primitif à une variable du type enveloppe
    • Syntaxe : Wrapper-type variable = primitive-value;
Integer age = 12;
Double cost = 150250.55;
Float interest = 5.5f;
Character grade = 'A';
Boolean isActive = true;
  • Les objets enveloppes peuvent aussi ne pas avoir de valeur (null)
Integer age = null;
Types de données et exceptions en Java

Utiliser des objets enveloppes

Integer age = 12;
  • Les afficher
    System.out.println(age);    // Affiche 12
    
  • Récupérer leur valeur primitive
    int x = age.intValue();     // x vaut 12
    
  • Effectuer d'autres opérations
    double z = age.doubleValue();  // z vaut 12.0
    String y = age.toString();  // y vaut "12"
    Integer teenAge = 16;
    int smaller = age.compareTo(teenAge);  // smaller vaut -1 car 12 < 16
    
Types de données et exceptions en Java

Méthodes statiques des enveloppes

  • Les classes enveloppes proposent des méthodes statiques
  • Pour opérer sur les primitifs associés
    int x = Integer.sum(8,12);  // x vaut 20
    int y = Integer.remainderUnsigned(102, 10);  // y vaut 2
    
  • Pour convertir entre String et primitif
    int z = Integer.parseInt("123");   // z vaut 123
    boolean ans = Boolean.parseBoolean("false");  // ans vaut false
    
1 See https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html for more on the Integer wrapper
Types de données et exceptions en Java

Champs statiques des enveloppes

Exemples de champs statiques des classes enveloppes

System.out.println(Integer.MAX_VALUE); // Valeur maximale d'un int
System.out.println(Integer.MIN_VALUE); // Valeur minimale d'un int
2147483647
-2147483648
System.out.println(Boolean.TRUE); // Correspond à la valeur primitive true
System.out.println(Boolean.FALSE); // Correspond à la valeur primitive false
true
false
Types de données et exceptions en Java

Champs statiques des enveloppes

Exemples de champs statiques des classes enveloppes

System.out.println(Character.SPACE_SEPARATOR);  // Unicode pour l'espace normal comme ' '
System.out.println(Character.LINE_SEPARATOR); // Unicode pour le retour ligne comme '\n'
12
13
Types de données et exceptions en Java

Méthodes d'enveloppe utiles

Méthode d'enveloppe Retourne
Boolean.logicalAnd(boolean a, boolean b) boolean
Boolean.logicalOr(boolean a, boolean b) boolean
Boolean.parseBoolean(String s) boolean
Character.getNumericValue(char ch) valeur Unicode int du caractère
Character.isDigit(char ch) boolean
Character.isLowerCase(char ch) boolean
Character.isWhitespace(char ch) boolean
Double.parseDouble(String s) double
Double.longValue() la valeur Double, arrondie à l'inférieur, en Long
Types de données et exceptions en Java

Pourquoi des enveloppes ?

  • Les primitifs n'ont pas de méthodes (seulement des opérations)
    • Les classes enveloppes fournissent des méthodes utiles
      int score = Integer.parseInt("8");
      
  • Les enveloppes permettent d'utiliser les primitifs comme objets ; par ex. dans une collection
    • Vous verrez les collections au chapitre 2.
Types de données et exceptions en Java

Les enveloppes peuvent être null

  • Les enveloppes permettent que des variables d'instance ou statiques du type soient null
    • Les variables primitives d'instance ou statiques ont une valeur par défaut si non initialisées
int herAge; // age vaut 0 par défaut
Integer hisAge = null;
if (hisAge != null) {
  // faire quelque chose si hisAge n'est pas défini
}
Types de données et exceptions en Java

Passons à la pratique !

Types de données et exceptions en Java

Preparing Video For Download...