Você está na página 1de 16

Tcnico em Informtica

Linguagem de Programao Orientada a Objetos

Classes Wrapper
Alex Helder Cordeiro do Rosrio de Oliveira
Instituto Federal de Braslia -

Campus

Braslia

1o semestre de 2014

Alex Helder (IFB)

LPOO - Classes Wrappers

2014/1

1 / 16

Problema:

Queremos que o usurio insira um nmero.


Temos o seguinte mecanismo para o usurio inserir informaes:
JOptionPane.showInputDialog("Entre um nmero.");

! O JOptionPane s coleta no formato de String.

Alex Helder (IFB)

LPOO - Classes Wrappers

2014/1

2 / 16

Classes Wrapper

Classes que fornecem mtodos de objeto para manipular tipos


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

Traduzido literalmente como Empacotador.

Alex Helder (IFB)

LPOO - Classes Wrappers

2014/1

3 / 16

Motivao

Necessidade de trabalhar com tipos primitivos como se fossem objetos;


Permitir obter valores de tipos primitivos a partir de Strings;
Fazer algumas operaes que no eram possveis diretamente com o
tipo primitivo.

Alex Helder (IFB)

LPOO - Classes Wrappers

2014/1

4 / 16

Classes Wrappers

Existe uma classe wrapper para cada tipo primitivo.

Tipo Primitivo Classe Wrapper


boolean
byte
char
short
int
long
float
double

Alex Helder (IFB)

Boolean
Byte
Character
Short
Integer
Long
Float
Double

LPOO - Classes Wrappers

2014/1

5 / 16

funes de parse

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

String texto = JOptionPane.showInputDialog("Entre um nmero.


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)

LPOO - Classes Wrappers

2014/1

6 / 16

funes de parse

Podemos ler nmeros 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)

LPOO - Classes Wrappers

2014/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 tambm concaternar com o string vazio.


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

Alex Helder (IFB)

LPOO - Classes Wrappers

2014/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)

LPOO - Classes Wrappers

2014/1

9 / 16

Sua vez:

- Escreva um programa que receba um nmero do usurio


em hexadecimal e apresente o nmero em binrio. Sugesto: Use
classe Wrapper.

(1.0 ponto)

Alex Helder (IFB)

LPOO - Classes Wrappers

2014/1

10 / 16

Comparao

.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)

LPOO - Classes Wrappers

2014/1

11 / 16

Atributos

Alm dos mtodos, as classes wrappers possuem atributos


interessantes, como:
MAX_VALUE;
MIN_VALUE;
SIZE.

Alex Helder (IFB)

LPOO - Classes Wrappers

2014/1

12 / 16

Atributos

As wrappers de pontos utuantes tem ainda:


NEGATIVE_INFINITY;
POSITIVE_INFINITY;
NaN.

Usados, por exemplo, em divises por zero.

Alex Helder (IFB)

LPOO - Classes Wrappers

2014/1

13 / 16

Mtodos de Character

A wrapper Character tem ainda os mtodos:


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)

LPOO - Classes Wrappers

2014/1

14 / 16

Obter um caractere de um String

Desde que o String no seja vazio, podemos usar o mtodo


.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)

LPOO - Classes Wrappers

2014/1

15 / 16

Sua vez:

- Escreva um programa que receba do usurio um


caractere e informe se este caractere uma letra minscula, uma letra
maiscula, um espao em branco, um dgito numrico ou um caractere
especial (algo diferente das opes anteriores).

(1.0 ponto)

Alex Helder (IFB)

LPOO - Classes Wrappers

2014/1

16 / 16

Você também pode gostar