Classes wrapper

Tipos de Dados e Exceções em Java

Jim White

Java Developer

Primitivos do Java 8

Os 8 tipos primitivos de Java são os tipos básicos a partir dos quais todos os dados são construídos.

Tipos de Dados e Exceções em Java

Classes wrapper

  • Cada tipo primitivo tem uma classe wrapper equivalente
primitive Classe wrapper
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

Classes wrapper permitem tratar primitivos como objetos. Classes wrapper são subclasses de Object.

Tipos de Dados e Exceções em Java

Encapsulando primitivos

  • Instâncias de uma classe wrapper guardam um único primitivo
    • Exemplo: Integer guarda um único valor primitivo int

Objetos wrapper contêm um primitivo como valor

Tipos de Dados e Exceções em Java

Detalhes de wrapper

  • Classes wrapper têm campos e métodos extras
    • Campos (como valor máximo) sobre o tipo
    • Métodos para trabalhar com o tipo primitivo encapsulado
  • Classes wrapper estão na linguagem base
    • Use sem import (falaremos de imports depois)
Tipos de Dados e Exceções em Java

Criando objetos wrapper

  • Atribua um primitivo a uma variável do tipo wrapper
    • Sintaxe: Wrapper-type variable = primitive-value;
Integer age = 12;
Double cost = 150250.55;
Float interest = 5.5f;
Character grade = 'A';
Boolean isActive = true;
  • Objetos wrapper também podem não ter valor (null)
Integer age = null;
Tipos de Dados e Exceções em Java

Usando objetos wrapper

Integer age = 12;
  • Imprima-os
    System.out.println(age);    // Exibe 12
    
  • Obtenha seu valor primitivo
    int x = age.intValue();     // x recebe 12
    
  • Faça outras operações com eles
    double z = age.doubleValue();  // z é 12.0
    String y = age.toString();  // y recebe "12"
    Integer teenAge = 16;
    int smaller = age.compareTo(teenAge);  // smaller é -1 pois 12 < 16
    
Tipos de Dados e Exceções em Java

Métodos estáticos de wrapper

  • Classes wrapper têm métodos estáticos
  • Usados para operar sobre os primitivos associados
    int x = Integer.sum(8,12);  // x é 20
    int y = Integer.remainderUnsigned(102, 10);  // y é 2
    
  • Usados para converter entre String e primitivo
    int z = Integer.parseInt("123");   // z é 123;
    boolean ans = Boolean.parseBoolean("false");  // ans é false
    
1 See https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html for more on the Integer wrapper
Tipos de Dados e Exceções em Java

Campos estáticos de wrapper

Exemplos de campos estáticos em classes wrapper

System.out.println(Integer.MAX_VALUE); // Valor máximo que um int pode ter
System.out.println(Integer.MIN_VALUE); // Valor mínimo que um int pode ter
2147483647
-2147483648
System.out.println(Boolean.TRUE); // Corresponde ao valor primitivo true
System.out.println(Boolean.FALSE); // Corresponde ao valor primitivo false
true
false
Tipos de Dados e Exceções em Java

Campos estáticos de wrapper

Exemplos de campos estáticos em classes wrapper

System.out.println(Character.SPACE_SEPARATOR);  // Unicode para espaço comum como ' '
System.out.println(Character.LINE_SEPARATOR); // Unicode para quebra de linha como '\n'
12
13
Tipos de Dados e Exceções em Java

Métodos úteis de wrapper

Método de wrapper Retorna
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 do char
Character.isDigit(char ch) boolean
Character.isLowerCase(char ch) boolean
Character.isWhitespace(char ch) boolean
Double.parseDouble(String s) double
Double.longValue() o valor Double, arredondado para baixo, como Long
Tipos de Dados e Exceções em Java

Por que usar wrappers?

  • Primitivos não têm métodos (apenas operações)
    • Classes wrapper trazem métodos úteis
      int score = Integer.parseInt("8");
      
  • Wrappers permitem usar primitivos como objetos; por exemplo, em uma coleção
    • Você verá coleções no Capítulo 2.
Tipos de Dados e Exceções em Java

Wrappers podem ser null

  • Wrappers permitem que variáveis de instância ou estáticas do tipo sejam null
    • Variáveis primitivas de instância ou estáticas têm um valor padrão quando não inicializadas
int herAge; // age é 0 por padrão
Integer hisAge = null;
if (hisAge != null) {
  // faça algo quando hisAge não estiver definido
}
Tipos de Dados e Exceções em Java

Vamos praticar!

Tipos de Dados e Exceções em Java

Preparing Video For Download...