Guía de la clase numérica en Java

1. Información general

En este tutorial, discutiremos el número c lass de Java . Primero, aprenderemos qué hace la clase Number y qué métodos contiene . Luego, profundizaremos en las diversas implementaciones de esta clase abstracta .

2. Clase de número

Number es una clase bstract en el paquete java.lang . Varias subclases amplían la clase Number . Los más utilizados son:

  • Byte
  • Corto
  • Entero
  • Largo
  • Doble
  • Flotador

El propósito principal de esta clase es proporcionar métodos para convertir el valor numérico en cuestión a varios tipos primitivos como byte , short , int , long , double y float .

Hay cuatro métodos abstractos disponibles para ayudar a realizar la tarea:

  • intValue ()
  • longValue ()
  • doubleValue ()
  • floatValue ()

Number también tiene dos métodos concretos, byteValue () y shortValue () , que devolverán elvalordel byte y elvalor corto de un número especificado, respectivamente. Para obtener más información sobre las diferentes implementaciones de laclase Number , consulte nuestro artículo sobre Clases de envoltura.

En las próximas secciones, aprenderemos más sobre estos métodos y su uso.

3. Métodos concretos

Analicemos los métodos concretos uno por uno.

3.1. shortValue ()

Como sugiere el nombre, este método convierte el objeto Número especificado en un valor corto primitivo .

La implementación predeterminada convierte el valor int en corto y lo devuelve. Sin embargo, las subclases tienen sus propias implementaciones y convierten los valores respectivos en cortos y luego regresan.

Así es como un valor Double se convierte en un tipo primitivo corto :

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

3.2. byteValue ()

Este método devuelve el valor del objeto Número especificado como un valor de byte . Sin embargo, las clases secundarias de la clase Number tienen sus propias implementaciones.

Así es como se puede convertir un valor flotante en un valor de byte :

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

4. Métodos abstractos

Además, la clase Number también tiene algunos métodos abstractos y varias subclases que los implementan.

En esta sección, echemos un vistazo rápido a cómo se utilizan estos métodos.

4.1. intValue ()

Este método devuelve la representación int del Número en contexto.

Veamos cómo se puede cambiar un valor Long a int :

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

Ciertamente, el compilador está realizando aquí una operación de restricción al convertir un valor largo en un int .

4.2. longValue ()

Este método devolverá el valor del N úmero especificado como long .

En este ejemplo, vemos cómo un valor entero se convierte en largo a través de la clase Integer :

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

A diferencia del método intValue () , longValue () devuelve el valor largo después de una conversión primitiva amplia.

4.3. floatValue ()

Podemos utilizar este método para devolver el valor de la especificada N úmero como un flotador. Echemos un vistazo a cómo un valor corto se puede convertir en un valor flotante :

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

Asimismo, longValue () y floatValue () también realizan una conversión primitiva de ampliación.

4.4. doubleValue ()

Finalmente, este método convierte el valor de la clase numérica dada al tipo de datos de doble primitiva y lo devuelve.

A continuación, se muestra un ejemplo del uso de este método para convertir un Byte en doble :

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

5. Conclusión

En este tutorial rápido, echamos un vistazo a algunos de los métodos más importantes de la clase Number .

Finalmente, hemos demostrado cómo se pueden usar estos métodos en varias clases de Wrapper .

Como siempre, el código fuente completo del artículo está disponible en GitHub.