Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Mónica Cameirão
monica.cameirao@staff.uma.pt Programação Orientada por Objetos
TIPOS ENUMERADOS
Tipos Enumerados
2
 O JAVA permite definir um tipo enumerado, 
que consiste num conjunto pequeno de 
constantes definidas pelo programador.
 Exemplos de enumerações:
 Os pontos cardeais {Norte, Sul, Este, Oeste}
 Os dias da semana {Dom, Seg, Ter, Qua, …}
 Os estados de um semáforo {Verde, Amarelo, 
Vermelho}
Declaração de tipos enumerados
3
 No JAVA, um tipo enumerado é definido
através de uma classe especial identificada
pela palavra reservada enum.
 No corpo desta classe declaram-se, separados 
por vírgulas, os identificadores das designadas 
constantes de enumeração.
Declaração de tipos enumerados
4
 Na sua forma mais simples, a declaração de 
um enum tem a seguinte sintaxe:
 A enumeração Direcao tem 4 constantes de 
enumeração.
public enum Direcao {
NORTE, SUL, ESTE, OESTE
}
Declaração de tipos enumerados
5
 Usamos um tipo enumerado sempre que 
queremos representar um conjunto fixo de 
constantes.
public enum Luz {ON, OFF}
public enum Cafe {CURTO, NORMAL, CHEIO}
public enum Dia {DOM, SEG, TER, QUA, QUI, SEX, SAB}
Declaração de tipos enumerados
6
 Uma vez definida a enumeração, podemos 
declarar variáveis desse tipo:
Dia hoje;
 As constantes são acedidas da seguinte forma:
hoje = Dia.QUI;
NetBeans - enum
7
 Para criar um tipo enumerado:
Declaração de tipos enumerados
8
 Declaramos as constantes no enum:
Métodos predefinidos
9
 Qualquer enum definido pelo programador é 
subclasse de java.lang.Enum.
 Basta criar o tipo e teremos imediatamente
disponível um conjunto de métodos.
Métodos predefinidos – ordinal()
10
 Cada elemento de um tipo enumerado tem um 
valor ordinal associado, começando em 0:
public enum Cafe {CURTO, NORMAL, CHEIO}
0 1 2
 O método ordinal() devolve o inteiro
associado a cada elemento:
Cafe meu = Cafe.NORMAL;
meu.ordinal(); → 1
Cafe meu = Cafe.NORMAL;
meu.name();
Métodos predefinidos – name()
11
public enum Cafe {CURTO, NORMAL, CHEIO}
 O método name() devolve o nome de um 
dado elemento:
→ NORMAL
Exemplo
12
 Resultado?
Métodos predefinidos – values()
13
public enum Cafe {CURTO, NORMAL, CHEIO}
 O método estático values() devolve um array 
com as constantes do enum, que podem ser 
iteradas com um ciclo for-each:
for ( Cafe meu : Cafe.values() )
//lógica a realizar
Exemplo
14
 Resultado?
Atributos e métodos em tipos enumerados
15
 Podemos associar valores a tipos enumerados. Os
valores são passados ao construtor quando as 
constantes são criadas.
Cada constante da 
enumeração é declarada com 
um double referente a um 
preço.
Nesta situação, necessitamos
ter um construtor para 
passar os valores.
Variável que representa o 
preço.
Atributos e métodos em tipos enumerados
16
 Os enum podem ter métodos e atributos.
Quando existem atributos ou
métodos, a enumeração tem
de terminar com ;
O construtor de um enum tem
de ser private. Serve para 
criar e inicializar as 
constantes.
Atributos e métodos em tipos enumerados
17
 Podemos ter um 
seletor que 
permite
consultar o 
preço de uma
t-shirt de 
acordo com os
tamanhos
existentes.
Testando
18
Exercício
19
 Pretende-se criar uma encomenda de t-shirts 
de diferentes tamanhos e calcular o valor total 
da mesma.
 Crie uma classe Encomenda.
 Uma encomenda tem como atributo um 
HashMap<K,V> em que as chaves são do tipo
TShirt e os valores do tipo Integer para 
representar o número de t-shirts.
Exercício
20
Exercício
21
 Inclua um método para adicionar um novo item 
à encomenda.
Exercício
22
 Inclua um método para calcular e devolver o 
valor total da encomenda.
Exercício
23
 Teste realizando uma encomenda de algumas
t-shirts de diferentes tamanhos.
Exercício
24
Referências
25
 Java Software Solutions, Foundations of 
Program Design, John Lewis, William Loftus, 
Addison Wesley
 Programação em Java – Curso Completo., 
Pedro Coelho, FCA.
 Java 8, F. Mário Martins, FCA.

Mais conteúdos dessa disciplina