Sie sind auf Seite 1von 16

Técnico em Informática

Estruturas de Dados

Classes Wrappers

Alex Helder Cordeiro do Rosário de Oliveira

Instituto Federal de Brası́lia - Campus Brası́lia

1º semestre de 2017

Alex Helder (IFB) EDD - Classes Wrappers 2017/1 1 / 16


Problema:

Queremos que o usuário insira um número.


Temos o seguinte mecanismo para o usuário inserir informações:

JOptionPane.showInputDialog("Entre um número.");

! O JOptionPane só coleta no formato de String.

Alex Helder (IFB) EDD - Classes Wrappers 2017/1 2 / 16


Classes Wrapper

Classes que fornecem métodos de objeto para manipular tipos


primitivos;
Cada classe wrapper∗ encapsula um único valor do tipo primitivo
correspondente.


Traduzido literalmente como Empacotador.
Alex Helder (IFB) EDD - Classes Wrappers 2017/1 3 / 16
Motivação

Necessidade de trabalhar com tipos primitivos como se fossem


objetos;
Permitir obter valores de tipos primitivos a partir de Strings;
Fazer algumas operações que não eram possı́veis diretamente com o
tipo primitivo.

Alex Helder (IFB) EDD - Classes Wrappers 2017/1 4 / 16


Classes Wrappers

Existe uma classe wrapper para cada tipo primitivo.

Tipo Primitivo Classe Wrapper


boolean Boolean
byte Byte
char Character
short Short
int Integer
long Long
float Float
double Double

Alex Helder (IFB) EDD - Classes Wrappers 2017/1 5 / 16


funções de parse∗

Permite obter o valor do tipo primitivo a partir de uma String.

String texto = JOptionPane.showInputDialog("Entre um número


int valor = Integer.parseInt(texto);

Integer.parseInt(String s);
Byte.parseByte(String s);
Short.parseShort(String s);
Long.parseLong(String s);
Boolean.parseBoolean(String s);
Float.parseFloat(String s);
Double.parseDouble(String s);

Pode ser traduzido como analizar.
Alex Helder (IFB) EDD - Classes Wrappers 2017/1 6 / 16
funções de parse

Podemos ler números em outras bases.

int i = Integer.parseInt("4F",16);
int j = Integer.parseInt("1001",2);
System.out.println(i+" "+j);

79 9

Byte.parseByte(String s, int radix);


Short.parseShort(String s, int radix);
Integer.parseInt(String s, int radix);
Long.parseLong(String s, int radix);

Alex Helder (IFB) EDD - Classes Wrappers 2017/1 7 / 16


Convertendo para String

.toString();
A forma original de converter um tipo primitivo para String.
int i = 53;
String texto = Integer.toString(i);

Podemos também concaternar com o string vazio.


int i = 53;
String texto = ""+i;

Alex Helder (IFB) EDD - Classes Wrappers 2017/1 8 / 16


Convertendo para String em outras bases

.toBinaryString(int i);
.toHexString(int i);
.toOctalString(int i);
.toString(int i, int radix);

Alex Helder (IFB) EDD - Classes Wrappers 2017/1 9 / 16


Sua vez:

9 (1.0 ponto) - Escreva um programa que receba um número do usuário


em hexadecimal e apresente o número em binário. Sugestão: Use
classe Wrapper.

Alex Helder (IFB) EDD - Classes Wrappers 2017/1 10 / 16


Comparação

.compare(int x, int y);


.compare(Integer anotherInteger).
int i = 53;
int j = 84;
int comparacao = Integer.compare(i, j);

Retorna 0 se ambos forem iguais;


Retorna positivo se o primeiro for maior;
Retorna negativo se o primeiro for menor.

Alex Helder (IFB) EDD - Classes Wrappers 2017/1 11 / 16


Atributos

Além dos métodos, as classes wrappers possuem atributos


interessantes, como:
MAX VALUE;
MIN VALUE;
SIZE.

Alex Helder (IFB) EDD - Classes Wrappers 2017/1 12 / 16


Atributos

As wrappers de pontos flutuantes tem ainda:


NEGATIVE INFINITY;
POSITIVE INFINITY;
NaN.
Usados, por exemplo, em divisões por zero.

Alex Helder (IFB) EDD - Classes Wrappers 2017/1 13 / 16


Métodos de Character

A wrapper Character tem ainda os métodos:


isDigit(char ch);
isLetter(char ch);
isLetterOrDigit(char ch).
isLowerCase(char ch);
isUpperCase(char ch);
isWhitespace(char ch);

toLowerCase(char ch);
toUpperCase(char ch);

Alex Helder (IFB) EDD - Classes Wrappers 2017/1 14 / 16


Obter um caractere de um String

Desde que o String não seja vazio, podemos usar o método


.charAt(0) para obter o primeiro caractere do String:
String s = "f";
char c = s.charAt(0);

Se houver apenas um caractere no String, este caractere será


retornado;
Se houver mais de um caractere, será retornado o primeiro.

Para retornar o segundo caractere, deve-se usar .charAt(1);


Para retornar o terceiro, deve-se usar .charAt(2);
...

Alex Helder (IFB) EDD - Classes Wrappers 2017/1 15 / 16


Sua vez:

10 (1.0 ponto) - Escreva um programa que receba do usuário um


caractere e informe se este caractere é uma letra minúscula, uma letra
maiúscula, um espaço em branco, um dı́gito numérico ou um
caractere especial (algo diferente das opções anteriores).

Alex Helder (IFB) EDD - Classes Wrappers 2017/1 16 / 16

Das könnte Ihnen auch gefallen