Classes enveloppes

Types de données et exceptions en Java

Jim White

Java Developer

8 primitifs Java

Les 8 types 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
primitif 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 des primitifs

  • Une instance d'une classe enveloppe contient un seul primitif
    • Exemple : Integer contient une seule valeur primitive int

Les objets enveloppes contiennent un primitif comme valeur

Types de données et exceptions en Java

Détails sur les enveloppes

  • Les classes enveloppes ont des champs et méthodes supplémentaires
    • Champs (comme la valeur max) sur le type
    • Méthodes pour travailler avec le primitif enveloppé
  • Les classes enveloppes font partie du langage de base
    • Utilisez-les sans import (plus sur les imports plus tard)
Types de données et exceptions en Java

Créer des objets enveloppes

  • Attribuez 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
    
  • Obtenir leur valeur primitive
    int x = age.intValue();     // x reçoit 12
    
  • Effectuer d'autres opérations
    double z = age.doubleValue();  // z vaut 12.0
    String y = age.toString();  // y reçoit "12"
    Integer teenAge = 16;
    int smaller = age.compareTo(teenAge);  // smaller vaut -1 puisque 12 < 16
    
Types de données et exceptions en Java

Méthodes statiques des enveloppes

  • Les classes enveloppes offrent 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 ordinaire comme ' '
System.out.println(Character.LINE_SEPARATOR); // Unicode pour le saut de 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, comme 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 offrent des méthodes pratiques
      int score = Integer.parseInt("8");
      
  • Les enveloppes permettent d'utiliser les primitifs comme des objets ; p. 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 quand 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...