Java Wrapper Classes
Описание
Каждый из восьми примитивных типов данных Java имеет свой класс. Они известны как классы-обертки, потому что они «оборачивают» примитивный тип данных в объект этого класса. Классы-оболочки являются частью пакета java.lang, который по умолчанию импортируется во все программы Java.
Классы-оболочки в java-серверах имеют две основные цели.
- Обеспечить механизм «обертывания» значений примитивов в объекте, чтобы примитивы могли выполнять действия, зарезервированные для объектов, таких как добавление в коллекцию ArrayList, Hashset, HashMap и т. Д.
- Предоставить ассортимент вспомогательных функций для примитивов, таких как преобразование типов примитивов в строковые объекты и из них, преобразование в различные базы, такие как двоичные, восьмеричные или шестнадцатеричные, или сравнение различных объектов.
Следующие два оператора иллюстрируют различие между примитивным типом данных и объектом класса-оболочки:
int x = 25; Целое число у = новое целое число (33);
Первый оператор объявляет переменную int с именем x и инициализирует ее значением 25. Второй оператор создает экземпляр объекта Integer. Объект инициализируется значением 33, и ссылка на объект присваивается переменной объекта y.
Ниже таблицы перечислены классы-оболочки в Java API с подробностями конструктора.
Примитивный | Wrapper Class | Конструктор Аргумент |
---|---|---|
логический | логический | логическое или String |
байт | Байт | байт или строка |
голец | символ | голец |
ИНТ | целое число | int или String |
поплавок | терка | float, double или String |
двойной | двойной | double или String |
долго | Долго | длинный или струнный |
короткая | короткий | короткая или Строка |
Ниже приведена иерархия классов-оболочек согласно Java API
Как объясняется в приведенной выше таблице, все классы-оболочки (кроме Character) принимают String в качестве конструктора аргумента. Обратите внимание, что мы можем получить NumberFormatException, если мы попытаемся присвоить недопустимый аргумент в конструкторе. Например, для создания объекта Integer у нас может быть следующий синтаксис.
Integer intObj = new Integer (25); Integer intObj2 = new Integer ("25");
Здесь мы можем указать любое число в качестве строкового аргумента, но не слова и т. Д. Оператор ниже выдает исключение времени выполнения (NumberFormatException)
Integer intObj3 = new Integer ("Два");
Следующее обсуждение фокусируется на классе-обертке Integer, но в общем смысле применяется ко всем восьми классам-оберткам.
Наиболее распространенные методы класса-оболочки Integer приведены в таблице ниже. Подобные методы для других классов-оболочек можно найти в документации по API Java.
метод | Цель |
---|---|
ParseInt (ы) | возвращает десятичное целое значение со знаком, эквивалентное строке s |
ToString (я) | возвращает новый объект String, представляющий целое число i |
byteValue () | возвращает значение этого Integer в виде байта |
doubleValue () | возвращает значение этого Integer как double |
floatValue () | возвращает значение этого целого числа как число с плавающей запятой |
intValue () | возвращает значение этого Integer как int |
shortValue () | возвращает значение этого Integer в виде короткого |
longValue () | возвращает значение этого Integer как long |
int CompareTo (int i) | Сравнивает числовое значение вызывающего объекта со значением i. Возвращает 0, если значения равны. Возвращает отрицательное значение, если вызывающий объект имеет меньшее значение. Возвращает положительное значение, если вызывающий объект имеет большее значение. |
статическое сравнение int (int num1, int num2) | Сравнивает значения num1 и num2. Возвращает 0, если значения равны. Возвращает отрицательное значение, если num1 меньше, чем num2. Возвращает положительное значение, если num1 больше, чем num2. |
логическое равенство (объект intObj) | Возвращает true, если вызывающий объект Integer эквивалентен intObj. В противном случае возвращается false. |
Давайте посмотрим на Java-программу, которая объясняет несколько методов классов-оболочек.
package WrapperIntro;
public class WrapperDemo {
public static void main (String args[]){
Integer intObj1 = new Integer (25);
Integer intObj2 = new Integer ("25");
Integer intObj3= new Integer (35);
//compareTo demo
System.out.println("Comparing using compareTo Obj1 and Obj2: " + intObj1.compareTo(intObj2));
System.out.println("Comparing using compareTo Obj1 and Obj3: " + intObj1.compareTo(intObj3));
//Equals demo
System.out.println("Comparing using equals Obj1 and Obj2: " + intObj1.equals(intObj2));
System.out.println("Comparing using equals Obj1 and Obj3: " + intObj1.equals(intObj3));
Float f1 = new Float("2.25f");
Float f2 = new Float("20.43f");
Float f3 = new Float(2.25f);
System.out.println("Comparing using compare f1 and f2: " +Float.compare(f1,f2));
System.out.println("Comparing using compare f1 and f3: " +Float.compare(f1,f3));
//Addition of Integer with Float
Float f = intObj1.floatValue() + f1;
System.out.println("Addition of intObj1 and f1: "+ intObj1 +"+" +f1+"=" +f );
}
}
Выход:
Методы valueOf (), toHexString (), toOctalString () и toBinaryString ():
Это еще один подход к созданию объектов-оболочек. Мы можем преобразовать двоичный, восьмеричный или шестнадцатеричный код, прежде чем присваивать значение объекту-оболочке, используя конструктор с двумя аргументами. Ниже программа объясняет метод в деталях.
package WrapperIntro;
public class ValueOfDemo {
public static void main(String[] args) {
Integer intWrapper = Integer.valueOf("12345");
//Converting from binary to decimal
Integer intWrapper2 = Integer.valueOf("11011", 2);
//Converting from hexadecimal to decimal
Integer intWrapper3 = Integer.valueOf("D", 16);
System.out.println("Value of intWrapper Object: "+ intWrapper);
System.out.println("Value of intWrapper2 Object: "+ intWrapper2);
System.out.println("Value of intWrapper3 Object: "+ intWrapper3);
System.out.println("Hex value of intWrapper: " + Integer.toHexString(intWrapper));
System.out.println("Binary Value of intWrapper2: "+ Integer.toBinaryString(intWrapper2));
}
}
Выход:
Резюме
- Каждый из примитивных типов данных имеет выделенный класс в библиотеке Java.
- Класс Wrapper предоставляет множество методов при использовании коллекций, таких как сортировка, поиск и т. Д.
Предыдущая: Массивы - 2D-массив и многомерный массив
Далее: оператор присваивания
Новый контент: Composer: менеджер зависимостей для PHP , R программирования