Classe Wrapper en Java - Autoboxing, Unboxing et Conversion

Table des matières:

Anonim

Introduction à la classe Wrapper en Java

La classe Wrapper est une classe importante de la bibliothèque java.lang. Les objets de classe wrapper créent un wrapper pour les types de données primitifs. Lors de la création d'un objet de classe wrapper, de l'espace est créé dans la mémoire où le type de données primitif est stocké.

La classe Wrapper fournit certaines fonctionnalités pour la conversion de l'objet en données primitives et des données primitives en objet, c'est-à-dire la boxe / unboxing. La conversion des objets en données primitives et des données primitives en un objet a lieu automatiquement. Le type de données primitif fait référence à int, float, char, double, byte, etc.

Syntaxe:

La déclaration ci-dessous montre comment fonctionne une classe Wrapper dans le programme java.

par exemple int i = 100;

Dans l'exemple ci-dessous, nous pouvons voir que i est un type de données entier. Un certain temps en entier java doit être passé en tant que type d'objet. Dans ce cas, nous pouvons utiliser la classe wrapper pour convertir un entier en objet.

Integer intVal = new Integer(i);

Dans la syntaxe donnée ci-dessus, nous pouvons voir comment un type de données primitif est converti en un objet à l'aide d'un objet de classe Integer. Peut également dire que le type de données primitif est encapsulé comme un objet.

Utilisations de la classe Wrapper en Java

  1. La classe Wrapper peut être utilisée pour convertir un objet en un type de données primitif ou vice versa.
  2. L'utilisation de classes wrapper améliore les performances du programme.
  3. La classe Wrapper aide à la sérialisation de l'objet et vice versa, elle peut convertir des données primitives en objets. Parfois, nous devons diffuser des objets, dans ce cas, la classe wrapper peut le convertir au format de sérialisation.
  4. Certaines méthodes importantes sont fournies par la classe wrapper, qui est utilisée pour effectuer la recherche et le tri dans les collections.
  5. Soustraction et addition, ces types d'opérations ne peuvent pas modifier l'ancienne valeur de l'entier primitif de la classe Wrapper, c'est pourquoi la classe Wrapper est connue comme immuable.
  6. Classe Wrapper utilisée dans le processus de multithreading, car le processus de multithreading a besoin d'un objet pour la synchronisation des processus. La classe wrapper convertit différents types de données en un objet.

Sur la base de JavaAPI, la hiérarchie des classes Wrapper maintient Object en haut des différentes classes primitives. Number, Character & Boolean arrive au deuxième niveau juste après l'objet. Au troisième niveau, Byte, Short, Int, Long, Float, Double relève du type de données Number.

Les classes wrapper utilisent les deux mécanismes suivants: Autoboxing & unboxing pour la conversion / habillage du type de données ou la conversion d'un objet en type de données primitif.

Autoboxing: Autoboxing fait référence à la conversion automatique du type de données primitif en objet à l'aide des classes Wrapper. Il est connu sous le nom de Autoboxing. Dans les exemples ci-dessous, int converti en objet Integer et dans les exemples c, différents types de données primitifs sont convertis en l'objet correspondant.

Unboxing: Unboxing est le processus inverse de Autoboxing. La conversion automatique de l'objet de classe wrapper en type de données primitif correspondant est appelée Unboxing. Dans l'exemple b ci-dessous, l'objet Integer est converti en type de données primitif int.

Exemples de classe Wrapper en Java

Voici les différents exemples de classe Wrapper en Java.

Exemple 1

Dans l'exemple ci-dessous, nous pouvons voir comment la conversion manuelle s'effectue à travers la classe wrapper de int i vers un objet k.

Code:

import java.util.*;
class WrapperExample (
public static void main(String args())(
int j=100;
//converting int j to integer k as an object
Integer k = new Integer(j);
System.out.println(j + "\n" + k);
)
)

Production:

Dans l'exemple ci-dessus, nous pouvons voir comment la conversion a lieu de manière explicite.

Exemple # 2

Dans l'exemple ci-dessous, nous pouvons voir que ce processus de conversion se déroule parfois automatiquement, c'est-à-dire appelé autoboxing.

Code:

import java.util.*;
class AutoboxingUnboxingExample (
public static void main(String args())(
int j = 500;
ArrayList arrValues = new ArrayList();
arrValues.add(j); // autoboxing takes place implicitly
System.out.println(arrValues.get(0));
)
)

Production:

Dans l'exemple ci-dessus, int valeur convertie en objet implicitement en tant qu'objet. En outre, cette valeur peut être obtenue à partir de la ArrayList.

Exemple # 3

Dans cet exemple, nous allons passer par l'implémentation du Unboxing. Unboxing est le processus inverse de Autoboxing.

Code:

import java.util.*;
class AutoboxingUnboxingExample (
public static void main(String args())(
ArrayList arrValues = new ArrayList();
arrValues.add(250);
//unboxing here as int data type from Integer object
int k = arrValues.get(0);
//value printed is in primitive data type
System.out.println(k);
)
)

Production:

Dans l'exemple donné ci-dessus, le champ d'objet ArrayList est converti en k type de données primitif, c'est-à-dire int k.

Exemple # 4

L'exemple donné suivant contient tous les détails de Autoboxing & Unboxing.

Code:

import java.util.*;
class WrapperConversionExample (
public static void main(String args())(
int i = 15;
float j = 9.6f;
double k = 120.8;
byte l = 1;
//creating instance of Integer object
Integer iObj = new Integer(i);
//creating instance of Float object
Float fObj = new Float(j);
//creating instance of Double object
Double dObj = new Double(k);
//creating instance of Double object
Byte bObj = new Byte(l);
//value printed is in object
System.out.println("Value as an Integer object > " + iObj);
System.out.println("Value as a Float object > " + fObj);
System.out.println("Value as a Double object > " + dObj);
System.out.println("Value as a Byte object > " + bObj);
//primitive data type from the object
int m = iObj;
float n = fObj;
double o = dObj;
byte p = bObj;
//value printed is in primitive data type
System.out.println("Value as an int primitive type > " + m);
System.out.println("Value as a float primitive type > " + n);
System.out.println("Value as a double primitive type > "+ o);
System.out.println("Value as a byte primitive type > " + p);
)
)

Production:

Dans le programme ci-dessus, nous pouvons voir l'implémentation des classes Wrapper. Les classes wrapper convertissent le type de données primitif en objet et objet en type de données primitif. La classe wrapper fournit des classes distinctes pour chaque type de données primitif.

Conclusion

Grâce aux classes Wrapper, nous pouvons facilement comprendre l'autoboxing et le déballage. Comment la conversion a lieu de la primitive à l'objet et vice versa, ce qui peut être facilement compris grâce aux classes Wrapper. Pour chacun des types de données primitifs, il existe une classe dédiée en java.

Article recommandé

Ceci est un guide de la classe Wrapper en Java. Ici, nous discutons de la syntaxe et des utilisations de la classe wrapper en Java ainsi que différents exemples et implémentations de code. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Comment fonctionne Case Statement en Java?
  2. Qu'est-ce que les génériques en Java?
  3. Le concept de sérialisation en Java
  4. Questions d'entretiens chez Java Top 8
  5. Outils de déploiement Java
  6. Exemples et fonctionnement des génériques en C #