1. Обзор
В этом уроке мы обсудим класс Java
Java
. Сначала мы узнаем , что делает класс Number
и какие методы он содержит . Затем мы углубимся в различные реализации этого абстрактного
класса.
2. Числовой
класс
Number
— это абстрактный
класс в пакете java.lang
. Различные подклассы расширяют класс Number .
Наиболее часто используются:
Байт
короткий
Целое число
Длинная
Двойной
Плавать
Основная цель этого класса — предоставить методы для преобразования рассматриваемого числового значения в различные примитивные типы, такие как byte
, short
, int
, long
, double
и float
.
Для выполнения этой задачи доступны четыре абстрактных метода:
intValue()
длинное значение()
двойное значение()
плавающее значение ()
Number
также имеет два конкретных метода, byteValue()
и shortValue()
, которые будут возвращать значение байта
и короткое
значение указанного числа соответственно. Чтобы узнать больше о различных реализациях класса Number
, обратитесь к нашей статье о классах -оболочках .
В следующих разделах мы узнаем больше об этих методах и их использовании.
3. Конкретные методы
Давайте обсудим конкретные методы один за другим.
3.1. короткое значение
()
Как следует из названия, этот метод преобразует указанный объект Number в примитивное
короткое
значение .
Реализация по умолчанию преобразует значение int в тип
short
и возвращает его. Однако у подклассов есть свои собственные реализации, и они преобразуют соответствующие значения в короткие
, а затем возвращаются.
Вот как значение Double
преобразуется в короткий
примитивный тип:
@Test
public void givenDoubleValue_whenShortValueUsed_thenShortValueReturned() {
Double doubleValue = Double.valueOf(9999.999);
assertEquals(9999, doubleValue.shortValue());
}
3.2. байтовое значение()
Этот метод возвращает значение указанного объекта Number
в виде значения байта
. Тем не менее, дочерние классы класса Number
имеют свои реализации.
Вот как значение с плавающей запятой
может быть преобразовано в значение байта
:
@Test
public void givenFloatValue_whenByteValueUsed_thenByteValueReturned() {
Float floatValue = Float.valueOf(101.99F);
assertEquals(101, floatValue.byteValue());
}
4. Абстрактные методы
Кроме того, класс Number
также имеет несколько абстрактных методов и несколько подклассов, которые их реализуют.
В этом разделе давайте кратко рассмотрим, как используются эти методы.
4.1. intValue()
Этот метод возвращает целочисленное
представление числа
в контексте.
Давайте посмотрим, как значение Long
можно изменить на int
:
@Test
public void givenLongValue_whenInitValueUsed_thenInitValueReturned() {
Long longValue = Long.valueOf(1000L);
assertEquals(1000, longValue.intValue());
}
Конечно, здесь компилятор выполняет операцию сужения , преобразовывая длинное
значение в целое
.
4.2. длинное значение()
Этот метод вернет значение числа, указанного
как long
.
В этом примере мы видим, как целочисленное
значение преобразуется в длинное
с помощью класса Integer :
@Test
public void givenIntegerValue_whenLongValueUsed_thenLongValueReturned() {
Integer integerValue = Integer.valueOf(100);
assertEquals(100, integerValue.longValue());
}
В отличие от метода intValue()
, longValue()
возвращает длинное
значение после расширяющего примитивного преобразования.
4.3. плавающее значение ()
Мы можем использовать этот метод, чтобы вернуть значение указанного числа в
виде числа с плавающей запятой.
Давайте посмотрим, как значение Short
может быть преобразовано в значение с плавающей запятой
:
@Test
public void givenShortValue_whenFloatValueUsed_thenFloatValueReturned() {
Short shortValue = Short.valueOf(127);
assertEquals(127.0F, shortValue.floatValue(), 0);
}
Аналогично, longValue()
и 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
.
Наконец, мы продемонстрировали, как эти методы можно использовать в различных классах Wrapper
.
Как всегда, полный исходный код статьи доступен на GitHub .