Рубрики
Без рубрики

Руководство по классу чисел в Java

Узнайте, что делает класс Java Number и какие методы он содержит.

Автор оригинала: baeldung.

1. Обзор

В этом уроке мы обсудим Java Number c lass. Во-первых, мы узнаем | что делает класс Number и какие методы он содержит . Затем мы погрузимся в различные реализации этого абстрактного класса.

2. Класс чисел

Number – это класс bstract в пакете java.lang . Различные подклассы расширяют класс Number . Наиболее часто используемые:

  • Байт
  • Короткий
  • Целое число
  • Длинный
  • Двойной
  • Поплавок

Основная цель этого класса-предоставить методы для преобразования рассматриваемого числового значения в различные примитивные типы, такие как byte , short , int , long , double и float .

Для выполнения этой задачи доступны четыре абстрактных метода:

  • intValue()
  • Длинное значение()
  • Двойное значение()
  • floatValue()

Number также имеет два конкретных метода, byteValue() и shortValue() , которые будут возвращать байтовое значение и короткое значение указанного числа соответственно. Чтобы узнать больше о различных реализациях класса Number , пожалуйста, обратитесь к нашей статье о классах-оболочках .

В следующих разделах мы узнаем больше об этих методах и их использовании.

3. Конкретные Методы

Давайте обсудим конкретные методы один за другим.

3.1. Короткое значение()

Как следует из названия, этот метод преобразует указанный объект Number в примитив short value .

Реализация по умолчанию преобразует значение int в short и возвращает его. Однако подклассы имеют свои собственные реализации, и они приводят соответствующие значения в short , а затем возвращаются.

Вот как значение Double преобразуется в тип short primitive:

@Test
public void givenDoubleValue_whenShortValueUsed_thenShortValueReturned() {
    Double doubleValue = Double.valueOf(9999.999);
    assertEquals(9999, doubleValue.shortValue());
}

3.2. Значение byteValue()

Этот метод возвращает значение указанного Числа объекта в виде байта значения . Тем не менее, дочерние классы класса Number имеют свои собственные реализации.

Вот как значение Float может быть преобразовано в значение byte :

@Test
public void givenFloatValue_whenByteValueUsed_thenByteValueReturned() {
    Float floatValue = Float.valueOf(101.99F);
    assertEquals(101, floatValue.byteValue());
}

4. Абстрактные методы

Кроме того, класс Number также имеет несколько абстрактных методов и несколько подклассов, которые их реализуют.

В этом разделе давайте кратко рассмотрим, как используются эти методы.

4.1. Значение()

Этот метод возвращает int представление Номер в контексте.

Давайте посмотрим, как значение Long можно изменить на int :

@Test
public void givenLongValue_whenInitValueUsed_thenInitValueReturned() {
    Long longValue = Long.valueOf(1000L);
    assertEquals(1000, longValue.intValue());
}

Конечно, компилятор выполняет сужение операция здесь путем преобразования длинный значение в int .

4.2. Длинное значение()

Этот метод вернет значение N умбра указано в качестве длинный .

В этом примере мы видим, как значение Integer преобразуется в long с помощью класса Integer :

@Test
public void givenIntegerValue_whenLongValueUsed_thenLongValueReturned() {
    Integer integerValue = Integer.valueOf(100);
    assertEquals(100, integerValue.longValue());
}

В отличие от intValue() метод, Длинное значение() возвращает длинный значение после a расширение примитивное преобразование.

4.3. Плавающее значение()

Мы можем использовать этот метод, чтобы вернуть значение указанного N umber в виде float. Давайте посмотрим, как значение Short может быть преобразовано в значение float :

@Test
public void givenShortValue_whenFloatValueUsed_thenFloatValueReturned() {
    Short shortValue = Short.valueOf(127);
    assertEquals(127.0F, shortValue.floatValue(), 0);
}

Также, Длинное значение() и floatValue() также выполните расширяющее преобразование примитивов.

4.4. Двойное значение()

Наконец, этот метод преобразует значение данного класса Number в примитивный тип данных double и возвращает его.

Вот пример использования этого метода для преобразования Byte в double :

@Test
public void givenByteValue_whenDoubleValueUsed_thenDoubleValueReturned() {
    Byte byteValue = Byte.valueOf(120);
    assertEquals(120.0, byteValue.doubleValue(), 0);
}

5. Заключение

В этом кратком руководстве мы рассмотрели некоторые из наиболее важных методов в классе Number /.

Наконец, мы продемонстрировали, как эти методы могут использоваться в различных классах-оболочках .

Как всегда, полный исходный код статьи доступен на GitHub .