> For the complete documentation index, see [llms.txt](https://kaze.gitbook.io/qa-theory/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kaze.gitbook.io/qa-theory/osnovy-programmirovaniya-na-java/tipy-obertki-wrapper-classes.md).

# Типы-обертки (wrapper classes)

Типы-обертки (wrapper classes) в Java представляют собой классы, которые инкапсулируют примитивные типы данных и предоставляют им объектное представление. Это позволяет использовать примитивные типы в контексте объектно-ориентированного программирования, так как объекты могут использоваться вместо примитивов в различных ситуациях, таких как коллекции, обобщенные классы и методы, а также использование в качестве аргументов в методах, требующих объектов.

1. **Integer**: `int`
2. **Long**: `long`
3. **Float**: `float`
4. **Double**: `double`
5. **Short**: `short`
6. **Byte**: `byte`
7. **Character**: `char`
8. **Boolean**: `boolean`

Каждый из этих классов-оберток обычно предоставляет ряд методов для работы с примитивными значениями, таких как преобразование в строку, сравнение и арифметические операции (для числовых типов).

Пример использования типов-оберток:

```java
Integer num1 = new Integer(10); // Создание объекта-обертки для целого числа
Integer num2 = 20; // Автоматическая упаковка (boxing) - примитивное значение автоматически преобразуется в объект-обертку
int sum = num1 + num2; // Автоматическая распаковка (unboxing) - объект-обертка автоматически преобразуется в примитивное значение
System.out.println(sum); // Вывод результата: 30
```
