Clases contenedoras

Tipos de datos y excepciones en Java

Jim White

Java Developer

Primitivos de Java 8

Los 8 primitivos de Java son los tipos básicos con los que se construyen todos los datos.

Tipos de datos y excepciones en Java

Clases contenedoras

  • Cada tipo primitivo tiene una clase contenedora equivalente
primitivo Clase contenedora
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

Las clases contenedoras permiten tratar los primitivos como objetos. Son subclases de Object.

Tipos de datos y excepciones en Java

Envolviendo primitivos

  • Las instancias de una clase contenedora guardan un solo primitivo
    • Ejemplo: Integer guarda un único valor primitivo int

Los objetos contenedores almacenan un primitivo como su valor

Tipos de datos y excepciones en Java

Detalles de las contenedoras

  • Las clases contenedoras tienen campos y métodos extra
    • Campos (como el valor máximo) sobre el tipo
    • Métodos para trabajar con el tipo primitivo envuelto
  • Las clases contenedoras están en el lenguaje base
    • Úsalas sin import (veremos imports más adelante)
Tipos de datos y excepciones en Java

Crear objetos contenedores

  • Asigna un primitivo a una variable del tipo contenedor
    • Sintaxis: Wrapper-type variable = primitive-value;
Integer age = 12;
Double cost = 150250.55;
Float interest = 5.5f;
Character grade = 'A';
Boolean isActive = true;
  • Los objetos contenedores también pueden no tener valor (null)
Integer age = null;
Tipos de datos y excepciones en Java

Usar objetos contenedores

Integer age = 12;
  • Imprímelos
    System.out.println(age);    // Muestra 12
    
  • Obtén su valor primitivo
    int x = age.intValue();     // a x se le asigna 12
    
  • Realiza otras operaciones con ellos
    double z = age.doubleValue();  // z es 12.0
    String y = age.toString();  // a y se le asigna "12"
    Integer teenAge = 16;
    int smaller = age.compareTo(teenAge);  // smaller es -1 porque 12 < 16
    
Tipos de datos y excepciones en Java

Métodos estáticos de contenedoras

  • Las clases contenedoras traen métodos estáticos
  • Se usan para operar sobre los primitivos asociados
    int x = Integer.sum(8,12);  // x es 20
    int y = Integer.remainderUnsigned(102, 10);  // y es 2
    
  • Se usan para convertir entre String y primitivo
    int z = Integer.parseInt("123");   // z es 123;
    boolean ans = Boolean.parseBoolean("false");  // ans es false
    
1 See https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html for more on the Integer wrapper
Tipos de datos y excepciones en Java

Campos estáticos de contenedoras

Ejemplos de campos estáticos en clases contenedoras

System.out.println(Integer.MAX_VALUE); // Valor máximo que puede tener un int
System.out.println(Integer.MIN_VALUE); // Valor mínimo que puede tener un int
2147483647
-2147483648
System.out.println(Boolean.TRUE); // Corresponde al valor primitivo true
System.out.println(Boolean.FALSE); // Corresponde al valor primitivo false
true
false
Tipos de datos y excepciones en Java

Campos estáticos de contenedoras

Ejemplos de campos estáticos en clases contenedoras

System.out.println(Character.SPACE_SEPARATOR);  // Unicode del espacio normal como ' '
System.out.println(Character.LINE_SEPARATOR); // Unicode del salto de línea como '\n'
12
13
Tipos de datos y excepciones en Java

Métodos interesantes de contenedoras

Método de contenedora Devuelve
Boolean.logicalAnd(boolean a, boolean b) boolean
Boolean.logicalOr(boolean a, boolean b) boolean
Boolean.parseBoolean(String s) boolean
Character.getNumericValue(char ch) valor int Unicode del char
Character.isDigit(char ch) boolean
Character.isLowerCase(char ch) boolean
Character.isWhitespace(char ch) boolean
Double.parseDouble(String s) double
Double.longValue() el valor Double, redondeado hacia abajo, como Long
Tipos de datos y excepciones en Java

¿Por qué contenedoras?

  • Los primitivos no tienen métodos (solo operaciones)
    • Las contenedoras traen métodos útiles
      int score = Integer.parseInt("8");
      
  • Permiten usar primitivos como objetos; por ejemplo, meterlos en una colección
    • Verás colecciones en el capítulo 2.
Tipos de datos y excepciones en Java

Las contenedoras pueden ser null

  • Las contenedoras permiten que variables de instancia o estáticas del tipo sean null
    • Las variables primitivas de instancia o estáticas tienen un valor por defecto si no se inicializan
int herAge; // age es 0 por defecto
Integer hisAge = null;
if (hisAge != null) {
  // haz algo cuando hisAge no esté establecido
}
Tipos de datos y excepciones en Java

¡Vamos a practicar!

Tipos de datos y excepciones en Java

Preparing Video For Download...