Types de données en JAVA : types primitifs, types objets et types enveloppes

Noter ce cours :

Liens sponsorisés :

Types de données :

Dans chacun de vos objets, vous aurez la nécessité de stocker des données qui pourront être de différents types. JAVA est un langage fortement typé, c'est à dire qu'un attribut d'une classe aura un type bien défini, contrairement au PHP par exemple, où une variable peut accepter n'importe quelles valeurs quel que soit leur type. 

Préciser le type d'une variable permet de coder plus proprement en savant quel type de données on manipule. Cela permet également de minimiser la place des données occupée en mémoire.

On distingue deux grandes familles de types de données en JAVA :

  • Les types primitifs
  • Les types objets

Voici le tableau des types primitifs :

Type primitif Signification Place occupée en mémoire
byte Entier très court allant de -128 à +127 1 octet
short Entier court allant de -32768 à +32767 2 octets
int Entier allant de -2 147 483 648 à +2 147 483 647 4 octets
long Entier long allant de -263 à +263 -1 8 octets
float Nombre réel allant de -1.4 * 10-45 à +3.4 * 1038 4 octets
double Nombre réel double précision allant de 4.9 * 10-324 à +1.7 * 10308 8 octets
char Caractère unicode (65536 caractères possibles) 2 octets
boolean variable booléenne (valeurs : vrai ou faux) 1 octet

Les types objets :

Il existe un type objet "transparent" : le type String (notez le S majuscule, c'est important). Ce type de données pourra contenir une chaîne de caractères. Comme il s'agit d'un type objet, le type String dispose de méthodes propres, comme par exemple la méthode equals() qui permet de savoir si une chaîne contient la valeur désirée.

Les types enveloppes :

Un type enveloppe est un type objet qui encapsule un type primitif. Grâce aux classes enveloppes (aussi appelées wrappers) vous pourrez manipuler les types primitifs à l'aide de méthodes inclues spécialement pour ces types enveloppes.

Voici la liste des types enveloppes intégrés en JAVA :

Type enveloppe Type primitif associé
Byte byte
Short short
Integer int
Long long
Float float
Double double
Character char
Boolean boolean

Utilisation des types enveloppes :

Voici un exemple de code qui va utiliser un entier via la classe enveloppe Integer :

public class Test
{
    Integer nombre;

    public Test()
    {
        nombre = new Integer(7);    //On assigne la valeur 7

        System.out.println("L'objet a été créé, voici sa valeur : " + nombre);
        System.out.println("L'objet a été créé, voici sa valeur : " + nombre.intValue());
        System.out.println("L'objet a été créé, voici sa valeur : " + nombre.floatValue());
    }
}

Vous constatez que l'on peut désormais utiliser des méthodes sur le type objet. Exécutez le code suivant et constatez le résultat !

Conversion de types de données (cast) :

Le cast consiste à convertir des données. Voici un exemple de cast :

public class Test
{
    float nombre;
    int   nb_int;

    public Test()
    {
        nombre = 3.14f;
        nb_int = (int) 8.14;

        System.out.println("Le nombre flottant vaut : " + nombre);
        System.out.println("Le nombre entier vaut : " + nb_int);
    }
}

Lorsque nous attribuons la valeur "3.14" à la variable nombre, nous ajoutons un "f" à la fin pour signifier qu'il s'agit d'un nombre flottant. Si vous ne le faites pas, vous aurez une erreur de "loss of precision" à la compilation. Vous pouvez pour éviter cette erreur faire un cast en signifiant que nombre est un type float, ce qui donnera ceci :

public class Test
{
    float nombre;
    int   nb_int;

    public Test()
    {
        nombre = (float) 3.14;
        nb_int = (int) 8.14;

        System.out.println("Le nombre flottant vaut : " + nombre);
        System.out.println("Le nombre entier vaut : " + nb_int);
    }
}

Vous avez aimé cet article intitulé Types de données en JAVA : types primitifs, types objets et types enveloppes ? Partagez-le !
Vulgarisation-informatique.com
Cours en informatique & tutoriels