logo

Класи-огортки в Java

The клас оболонки в Java забезпечує механізм перетворювати примітив на об’єкт і об’єкт на примітив .

Починаючи з J2SE 5.0, автобокс і розпакування функція автоматичного перетворення примітивів на об’єкти та об’єктів на примітиви. Автоматичне перетворення примітиву в об'єкт відоме як автоупакування і навпаки розпакування.

Використання класів Wrapper в Java

Java є об’єктно-орієнтованою мовою програмування, тому нам потрібно мати справу з об’єктами багато разів, як-от колекції, серіалізація, синхронізація тощо. Давайте розглянемо різні сценарії, де нам потрібно використовувати класи-огортки.

увімкніть java
    Змініть значення в методі:Java підтримує лише виклик за значенням. Отже, якщо ми передаємо примітивне значення, воно не змінить початкове значення. Але якщо ми перетворимо первинне значення в об’єкт, це змінить вихідне значення.Серіалізація:Щоб виконати серіалізацію, нам потрібно перетворити об’єкти на потоки. Якщо у нас є примітивне значення, ми можемо перетворити його в об’єкти через класи-огортки.Синхронізація:Синхронізація Java працює з об'єктами в багатопоточності.пакет java.util:Пакет java.util надає службові класи для роботи з об’єктами.Структура колекції:Структура колекції Java працює лише з об’єктами. Усі класи структури збору (ArrayList, LinkedList, Vector, HashSet, LinkedHashSet, TreeSet, PriorityQueue, ArrayDeque тощо) працюють лише з об’єктами.

Вісім класів ст java.lang пакети відомі як класи-огортки в Java. Нижче наведено список із восьми класів оболонки:

Примітивний типКлас обгортки
логічнийЛогічний
char характер
байтБайт
короткийКороткий
внутр Ціле число
довгоДовго
плаватиПоплавок
подвійнийДвомісний

Автобокс

Автоматичне перетворення примітивного типу даних у відповідний клас-оболонку відоме як автоупакування, наприклад, байт у байт, char у символ, int у ціле, long у long, float у Float, boolean у boolean, double у Double та short до Короткий.

Починаючи з Java 5, нам не потрібно використовувати метод valueOf() класів-оболонок для перетворення примітиву в об’єкти.

Приклад класу Wrapper: Примітив до Wrapper

 //Java program to convert primitive into objects //Autoboxing example of int to Integer public class WrapperExample1{ public static void main(String args[]){ //Converting int into Integer int a=20; Integer i=Integer.valueOf(a);//converting int into Integer explicitly Integer j=a;//autoboxing, now compiler will write Integer.valueOf(a) internally System.out.println(a+' '+i+' '+j); }} 

Вихід:

java сон
 20 20 20 

Розпакування

Автоматичне перетворення типу оболонки у відповідний примітивний тип відоме як розпакування. Це процес, зворотний автобоксингу. Починаючи з Java 5, нам не потрібно використовувати метод intValue() класів оболонки для перетворення типу оболонки на примітиви.

java indexof

Приклад класу оболонки: оболонка до примітиву

 //Java program to convert object into primitives //Unboxing example of Integer to int public class WrapperExample2{ public static void main(String args[]){ //Converting Integer to int Integer a=new Integer(3); int i=a.intValue();//converting Integer to int explicitly int j=a;//unboxing, now compiler will write a.intValue() internally System.out.println(a+' '+i+' '+j); }} 

Вихід:

 3 3 3 

Приклад класів Java Wrapper

 //Java Program to convert all primitives into its corresponding //wrapper objects and vice-versa public class WrapperExample3{ public static void main(String args[]){ byte b=10; short s=20; int i=30; long l=40; float f=50.0F; double d=60.0D; char c='a'; boolean b2=true; //Autoboxing: Converting primitives into objects Byte byteobj=b; Short shortobj=s; Integer intobj=i; Long longobj=l; Float floatobj=f; Double doubleobj=d; Character charobj=c; Boolean boolobj=b2; //Printing objects System.out.println('---Printing object values---'); System.out.println('Byte object: '+byteobj); System.out.println('Short object: '+shortobj); System.out.println('Integer object: '+intobj); System.out.println('Long object: '+longobj); System.out.println('Float object: '+floatobj); System.out.println('Double object: '+doubleobj); System.out.println('Character object: '+charobj); System.out.println('Boolean object: '+boolobj); //Unboxing: Converting Objects to Primitives byte bytevalue=byteobj; short shortvalue=shortobj; int intvalue=intobj; long longvalue=longobj; float floatvalue=floatobj; double doublevalue=doubleobj; char charvalue=charobj; boolean boolvalue=boolobj; //Printing primitives System.out.println('---Printing primitive values---'); System.out.println('byte value: '+bytevalue); System.out.println('short value: '+shortvalue); System.out.println('int value: '+intvalue); System.out.println('long value: '+longvalue); System.out.println('float value: '+floatvalue); System.out.println('double value: '+doublevalue); System.out.println('char value: '+charvalue); System.out.println('boolean value: '+boolvalue); }} 

Вихід:

 ---Printing object values--- Byte object: 10 Short object: 20 Integer object: 30 Long object: 40 Float object: 50.0 Double object: 60.0 Character object: a Boolean object: true ---Printing primitive values--- byte value: 10 short value: 20 int value: 30 long value: 40 float value: 50.0 double value: 60.0 char value: a boolean value: true 

Спеціальний клас Wrapper в Java

Класи Java Wrapper обертають примітивні типи даних, тому вони відомі як класи-огортки. Ми також можемо створити клас, який обгортає примітивний тип даних. Отже, ми можемо створити спеціальний клас-оболонку в Java.

 //Creating the custom wrapper class class Javatpoint{ private int i; Javatpoint(){} Javatpoint(int i){ this.i=i; } public int getValue(){ return i; } public void setValue(int i){ this.i=i; } @Override public String toString() { return Integer.toString(i); } } //Testing the custom wrapper class public class TestJavatpoint{ public static void main(String[] args){ Javatpoint j=new Javatpoint(10); System.out.println(j); }} 

Вихід:

 10