Вступ до класу Wrapper на Java
Клас Wrapper - важливий клас бібліотеки java.lang. Об'єкти класу Wrapper створюють обгортку для примітивних типів даних. Під час створення об’єкта класу обгортки створюється простір у пам'яті, де зберігається примітивний тип даних.
Клас Wrapper надає деякі функції для перетворення об'єкта в примітивні дані та примітивні дані в об'єкт, тобто бокс / розпакування. Перетворення від об'єктів до примітивних даних та примітивних даних до об'єкта відбувається автоматично. Примітивний тип даних відноситься до int, float, char, double, byte тощо.
Синтаксис:
Нижче наведена декларація показує, як працює клас Wrapper в програмі java.
наприклад, int i = 100;
У наведеному нижче прикладі ми можемо бачити i цілий тип даних. Певний час у цілому Java потрібно передавати як тип об'єкта. У цьому випадку ми можемо використовувати клас обгортки для перетворення цілого числа в об’єкт.
Integer intVal = new Integer(i);
У наведеному вище синтаксисі ми бачимо, як примітивний тип даних перетворюється на об’єкт за допомогою об’єкта класу Integer. Також можна сказати, що примітивний тип даних загортається як об'єкт.
Використання класу Wrapper на Java
- Клас Wrapper може використовуватися для перетворення об'єкта в примітивний тип даних або його навпаки.
- Використання класів з обгортки покращує продуктивність програми.
- Клас Wrapper допомагає в серіалізації об'єкта і навпаки, він може конвертувати примітивні дані в об'єкти. Іноді нам потрібно передавати об'єкти, у цьому випадку клас обгортки може перетворити його у формат серіалізації.
- Деякі важливі методи надає клас обгортки, який використовується для пошуку та сортування у колекціях.
- Віднімання та додавання, ці типи операцій не можуть змінити старе значення первісного цілого класу Wrapper, тому клас Wrapper відомий як незмінний.
- Клас Wrapper використовується в багатопотоковому процесі, оскільки багатопотоковому процесу потрібен об'єкт для синхронізації процесів. Клас Wrapper перетворює різний тип даних в об’єкт.
На основі JavaAPI ієрархія класів Wrapper зберігає Object у верхній частині різних примітивних класів. Число, символи та булеві значення надходять на другий рівень відразу після Об'єкта. На третьому рівні "Байт", "Короткий", "Інт", "Довгий", "Поплавковий", "Подвійний" підпадає під тип даних "Число".
Класи обгортки використовують наступні два механізми Автобоксинг та розпакування для перетворення / загортання типу даних або перетворення об'єкта в примітивний тип даних.
Автобоксинг: Автобоксинг відноситься до автоматичного перетворення примітивного типу даних в об'єкт за допомогою класів Wrapper. Він відомий як Автобоксинг. У наведених нижче Прикладах, int, перетворений на об'єкт Integer & у прикладах c, перетворюється інший примітивний тип даних у відповідний об'єкт.
Розпакування: Розпакування - це зворотний процес автозавантаження. Автоматичне перетворення об’єкта класу обгортки у відповідний примітивний тип даних відоме як Unboxing. У наведеному нижче прикладі b об'єкт Integer перетворюється на int примітивний тип даних.
Приклади класу Wrapper на Java
Нижче наведено різні приклади класу Wrapper на Java.
Приклад №1
У наведеному нижче прикладі ми можемо побачити, як відбувається ручне перетворення через обгортковий клас з int i в об’єкт k.
Код:
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);
)
)
Вихід:
У наведеному вище прикладі ми бачимо, як явно відбувається конверсія.
Приклад №2
У наведеному нижче прикладі ми бачимо, що цей процес перетворення іноді відбувається автоматично, тобто відомий як автобокс.
Код:
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));
)
)
Вихід:
У наведеному вище прикладі значення int, перетворене в об'єкт неявно як об'єкт. Далі це значення може отримати від ArrayList.
Приклад №3
У цьому прикладі ми розглянемо реалізацію Unboxing. Розпакування - це зворотний процес автобоксингу.
Код:
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);
)
)
Вихід:
У наведеному вище прикладі поле об’єкта ArrayList перетворюється в k примітивний тип даних, тобто int k.
Приклад №4
У наведеному нижче прикладі є всі деталі автоматичного боксу та розпакування.
Код:
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);
)
)
Вихід:
У наведеній вище програмі ми можемо побачити реалізацію класів Wrapper. Класи обгортки перетворюють примітивний тип даних для об'єкта та об'єкта в примітивний тип даних. Клас обгортки забезпечує окремі класи для кожного примітивного типу даних.
Висновок
За допомогою класів Wrapper ми можемо легко зрозуміти автобоксинг та розпакування. Як відбувається перетворення від примітивного до об'єкта та навпаки, що легко зрозуміти через класи Wrapper. Для кожного з примітивних типів даних існує спеціальний клас у java.
Рекомендована стаття
Це посібник для класу Wrapper на Java. Тут ми обговорюємо синтаксис та використання класу обгортки на Java разом з різними прикладами та реалізацією коду. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -
- Як складається заява про випадки на Java?
- Що таке дженерики на Java?
- Поняття серіалізації в Java
- Java-8 питань для інтерв'ю
- Інструменти розгортання Java
- Приклади та як дженерики працюють у C #