Prog. 3

Propaganda
23/10/15
Agenda
•  Enumerações
•  TiposGenéricos
Prog. 3
Julho2013
Enumerações
DesenvolvimentoOOcomJava
2
EnumsemUML
•  Tiposenumeradossãoaquelesquepossuemum
conjuntofinitosdevaloresqueasvariáveispodem
assumir:
•  Ex.:estaçõesdoano,naipesoucartasdobaralho,
planetasdosistemasolar,etc.
•  AparLrdoJava5,apalavra-chaveenumdefineumLpo
enumerado:
enum Estacao { PRIMAVERA, VERAO, OUTONO, INVERNO };
Julho2013
DesenvolvimentoOOcomJava
3
ExemplodeEnumeração
public enum
MERCURY
VENUS
EARTH
MARS
JUPITER
SATURN
URANUS
NEPTUNE
Planet {
(3.303e+23,
(4.869e+24,
(5.976e+24,
(6.421e+23,
(1.9e+27,
(5.688e+26,
(8.686e+25,
(1.024e+26,
public enum Comando {
AJUDA("?", "Mostra esta lista de comandos."),
ADICIONAR("adic", "Adiciona um novo contato."),
LISTAR("list", "Lista os contatos."),
SAIR("sair", "Sai do programa."),
DESCONHECIDO("", "");
2.4397e6),
6.0518e6),
6.37814e6),
3.3972e6),
7.1492e7),
6.0268e7),
2.5559e7),
2.4746e7);
private final String nome;
private final String descricao;
private Comando(String nome, String descricao) {
this.nome = nome;
this.descricao = descricao;
}
public String getNome() {
return nome;
}
}
DesenvolvimentoOOcomJava
http://stackoverflow.com/questions/412944/uml-class-diagram-enum
DesenvolvimentoOOcomJava
4
EnumspossuemcaracterísLcasdeclasse
private final double mass;
// in kilograms
private final double radius; // in meters
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
public double mass() { return mass; }
public double radius() { return radius; }
Julho2013
Julho2013
5
Julho2013
DesenvolvimentoOOcomJava
/* Continua... */
6
1
23/10/15
EnumspossuemcaracterísLcasdeclasse
EnumspossuemcaracterísLcasdeclasse
public String toString() {
if (this == DESCONHECIDO) return "";
return "- " + nome + ": " + descricao;
}
/* No método main() ... */
try (Scanner scanner = new Scanner(System.in)) {
String linha = scanner.nextLine();
Comando comando = Comando.obtemComando(linha);
public static Comando obtemComando(String linha) {
int idx = linha.indexOf(' ');
if (idx != -1) linha = linha.substring(0, idx);
linha = linha.toLowerCase();
while (comando != Comando.SAIR) {
switch (comando) {
case AJUDA:
System.out.printf("Comandos disponíveis:%n%n");
for (Comando cmd : Comando.values())
System.out.printf("%s%n", cmd);
break;
for (Comando comando : Comando.values())
if (comando.nome.equals(linha))
return comando;
case ADICIONAR:
// etc...
break;
}
return DESCONHECIDO;
}
}
}
Julho2013
DesenvolvimentoOOcomJava
7
Julho2013
DesenvolvimentoOOcomJava
8
2
Download