Wrapper classes

Типы данных и исключения в Java

Jim White

Java Developer

8 примитивных типов Java

8 примитивных типов Java — базовые типы данных, из которых строятся все остальные данные.

Типы данных и исключения в Java

Классы-обёртки

  • Каждому примитивному типу соответствует класс-обёртка
Примитив Класс-обёртка
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

Классы-обёртки позволяют работать с примитивами как с объектами. Они являются подклассами Object.

Типы данных и исключения в Java

Обёртывание примитивов

  • Экземпляр класса-обёртки хранит один примитив
    • Например: Integer хранит одно значение примитива int

Объект-обёртка содержит примитив в качестве значения

Типы данных и исключения в Java

Подробнее об обёртках

  • Классы-обёртки имеют дополнительные поля и методы
    • Поля (например, максимальное значение) для описания типа
    • Методы для работы с обёрнутым примитивным типом
  • Классы-обёртки входят в базовый язык
    • Используйте их без import (об импорте — позже)
Типы данных и исключения в Java

Создание объектов-обёрток

  • Присвойте примитив переменной типа-обёртки
    • Синтаксис: Тип-обёртки переменная = примитивное-значение;
Integer age = 12;
Double cost = 150250.55;
Float interest = 5.5f;
Character grade = 'A';
Boolean isActive = true;
  • Объекты-обёртки могут не иметь значения (null)
Integer age = null;
Типы данных и исключения в Java

Использование объектов-обёрток

Integer age = 12;
  • Вывести их
    System.out.println(age);    // Displays 12
    
  • Получить примитивное значение
    int x = age.intValue();     // x is assigned 12
    
  • Выполнить другие операции
    double z = age.doubleValue();  //z is 12.0
    String y = age.toString();  // y is assigned "12"
    Integer teenAge = 16;
    int smaller = age.compareTo(teenAge);  // smaller is -1 since 12 < 16
    
Типы данных и исключения в Java

Статические методы обёрток

  • Классы-обёртки содержат статические методы
  • Для выполнения операций над соответствующими примитивами
    int x = Integer.sum(8,12);  // x is 20
    int y = Integer.remainderUnsigned(102, 10);  // y is 2
    
  • Для преобразования между String и примитивом
    int z = Integer.parseInt("123");   // z is 123;
    boolean ans = Boolean.parseBoolean("false");  // ans is false
    
1 See https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html for more on the Integer wrapper
Типы данных и исключения в Java

Статические поля обёрток

Примеры статических полей классов-обёрток

System.out.println(Integer.MAX_VALUE); // Maximum value an int can have
System.out.println(Integer.MIN_VALUE); // Minimum value an int can have
2147483647
-2147483648
System.out.println(Boolean.TRUE); // Corresponding to the primitive value of true
System.out.println(Boolean.FALSE); // Corresponding to the primitive value of false
true
false
Типы данных и исключения в Java

Статические поля обёрток

Примеры статических полей классов-обёрток

System.out.println(Character.SPACE_SEPARATOR);  // Unicode for the regular space like ' '
System.out.println(Character.LINE_SEPARATOR); // Unicode for line return like '\n'
12
13
Типы данных и исключения в Java

Полезные методы обёрток

Метод обёртки Возвращает
Boolean.logicalAnd(boolean a, boolean b) boolean
Boolean.logicalOr(boolean a, boolean b) boolean
Boolean.parseBoolean(String s) boolean
Character.getNumericValue(char ch) Unicode int значение символа
Character.isDigit(char ch) boolean
Character.isLowerCase(char ch) boolean
Character.isWhitespace(char ch) boolean
Double.parseDouble(String s) double
Double.longValue() значение Double, округлённое вниз, как Long
Типы данных и исключения в Java

Зачем нужны обёртки?

  • У примитивов нет методов (только операции)
    • Классы-обёртки предоставляют полезные методы
      int score = Integer.parseInt("8");
      
  • Обёртки позволяют использовать примитивы как объекты — например, помещать их в коллекции
    • Подробнее о коллекциях — в главе 2.
Типы данных и исключения в Java

Обёртки могут быть null

  • Обёртки позволяют переменным экземпляра или статическим переменным принимать значение null
    • Переменные-примитивы имеют значение по умолчанию, если не инициализированы
int herAge; // age is 0 by default
Integer hisAge = null;
if (hisAge != null) {
  // do something when hisAge is not set
}
Типы данных и исключения в Java

Давайте потренируемся!

Типы данных и исключения в Java

Preparing Video For Download...