Въведение в клас Wrapper в Java
Wrapper Class е важен клас на библиотеката java.lang. Обектите от клас Wrapper създават обвивка за примитивните типове данни. Докато създавате обект от клас обвивка, пространството се създава в паметта, където се съхранява примитивен тип данни.
Класът Wrapper предоставя някои функции за преобразуване на обекта в примитивни данни и примитивни данни към обект, т.е. бокс / дебоксиране. Преобразуването от обекти в примитивни данни и примитивни данни в обект се извършва автоматично. Примитивният тип данни се отнася до int, float, char, double, byte и т.н.
Синтаксис:
По-долу дадената декларация показва как работи клас Wrapper в програмата java.
например int i = 100;
В дадения по-долу пример можем да видим, че е цяло число тип данни. Известно време в Java трябва да се предаде като тип обект. В този случай можем да използваме клас обвивка за преобразуване на цяло число в обект.
Integer intVal = new Integer(i);
В горепосочения синтаксис можем да видим как примитивен тип данни се преобразува в обект, използвайки обект от клас Integer. Също така може да се каже, че примитивният тип данни е увит като обект.
Използване на клас Wrapper в Java
- Wrapper Class може да се използва за преобразуване на обект в примитивен тип данни или обратно.
- Използването на класове за обвиване подобрява ефективността на програмата.
- Класът Wrapper помага при сериализацията на обекта и обратно, може да конвертира примитивни данни в обекти. Понякога се налага да поточим обекти, в този случай класът на обвивка може да го преобразува във формат на сериализация.
- Някои важни методи са предоставени от клас обвивка, който се използва за извършване на търсене и сортиране в колекциите.
- Изваждането и добавянето, тези видове операции не могат да променят старата стойност на примитивното цяло число на клас Wrapper, затова класът Wrapper е известен като неизменим.
- Класът Wrapper, използван в процеса на многоредово четене, тъй като многопоточният процес се нуждае от обект за синхронизация на процесите. Класът Wrapper преобразува различен тип данни в обект.
На базата на JavaAPI йерархията на класовете Wrapper поддържа Object в горната част на различните примитивни класове. Число, символ и булева линия излиза на второто ниво непосредствено след обекта. На трето ниво Byte, Short, Int, Long, Float, Double влиза под типа данни с номера.
Класовете Wrapper използват следните два механизма Autoboxing & unboxing за преобразуването / обвиването на типа данни или преобразуването на обект в примитивен тип данни.
Автобоксиране: Автобоксирането се отнася до автоматично преобразуване на примитивния тип данни към обект, използвайки класове Wrapper. Известен е като Autoboxing. В дадените по-долу примери, int, преобразуван в обект Integer & в примери c, различен примитивен тип данни се превръща в съответния обект.
Unboxing: Unboxing е обратният процес на Autoboxing. Автоматичното преобразуване на обект от клас обвивка в съответния примитивен тип данни е известно като 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. Unboxing е обратният процес на Autoboxing.
Код:
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 можем лесно да разберем автобоксирането и отписването. Как се осъществява преобразуването от примитивен към обект и обратно, което може да бъде лесно разбрано чрез класове Wrapper. За всеки от примитивните типове данни има специален клас в java.
Препоръчителен член
Това е ръководство за клас Wrapper в Java. Тук обсъждаме синтаксиса и употребите на клас обвивка в Java заедно с различни примери и реализация на код. Можете да разгледате и другите ни предложени статии, за да научите повече -
- Как се изписва случай в Java?
- Какво е Generics в Java?
- Концепцията за сериализация в Java
- Java Топ 8 въпроси за интервю
- Инструменти за разполагане на Java
- Примери и как генериците работят в C #