Pular para o conteúdo

Uso de enum em Java

Olá PessoALL,

Recentemente estive estudando para a certificação Java. E durante esta jornada, que não será nada fácil, me deparei com diversos recursos que ainda não havia utilizado. Dentre eles, vou citar o enum.

enum foi adicionado ao Java 5, portanto, qualquer versão do compilador anterior a 5, o programa irá tratar enum como se fosse um identificador. Para suprir uma gama interessante de problemas, o mais notável é o anti-pattern "constant interface", enum foi adicionado para sanar tais problemas. Este anti-pattern é bem simples: Declara-se interfaces de constantes e pronto! Além de ficar estranho, a classe, geralmente não uso faz de todas essas constantes.

O enum permite resolver isso de forma elegante. Além disso, enum traz consigo alguns recursos legais. Como por exemplo, valores que pode ser colocados no mesmo.

Abaixo segue alguns exemplos de uso.

Qualquer dúvida, sugestão ou crítica serão bem-vindos,

Fagner Candido
f_Candido
@fagner_candido
fagner7777777@gmail.com
Fagner Amaral de Souza Candido f_Candido
Hits: 12.476 Categoria: Java Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

Olá PessoALL,

Recentemente estive estudando para a certificação Java. E durante esta jornada, que não será nada fácil, me deparei com diversos recursos que ainda não havia utilizado. Dentre eles, vou citar o enum.

enum foi adicionado ao Java 5, portanto, qualquer versão do compilador anterior a 5, o programa irá tratar enum como se fosse um identificador. Para suprir uma gama interessante de problemas, o mais notável é o anti-pattern "constant interface", enum foi adicionado para sanar tais problemas. Este anti-pattern é bem simples: Declara-se interfaces de constantes e pronto! Além de ficar estranho, a classe, geralmente não uso faz de todas essas constantes.

O enum permite resolver isso de forma elegante. Além disso, enum traz consigo alguns recursos legais. Como por exemplo, valores que pode ser colocados no mesmo.

Abaixo segue alguns exemplos de uso.

Qualquer dúvida, sugestão ou crítica serão bem-vindos,

Fagner Candido
f_Candido
@fagner_candido
fagner7777777@gmail.com
Download Sexo.java Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Esconder código-fonte

/*
   Síntese
      Objetivo : Manipular Enum
      Entrada :
      Saída : Prints do Enum
      Autor : f_Candido   <fagner7777777@gmail.com>   @fagner_candido
*/

// Declaração do Enum
public enum Sexo{
   M("Masculino"), F("Feminino");
   
   private String sexo;

   Sexo(String sexo){
      this.sexo = sexo;
   }

   public String getSexo(){return this.sexo;}

}

class Principal{

   public static void main(String []args){
      // Posicao ordinal do Enum
      System.out.println(Sexo.M.ordinal());
      // Valor do Enum
      System.out.println(Enum.valueOf(Sexo.class, "M"));

   }

}
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Calculadora em Java

Java QZ game em java

Operadores

Hello World em J2ME

Mexendo com gráficos

#1 Comentário enviado por removido em 04/02/2011 - 15:56h
Enums são úteis em vários aspectos, principalmente quando usados como bitwise enums, como no exemplo bem simples abaixo:

public class Cliente {
public Cliente(String nome, int formaPagamento){
setNome(nome);
setFormaPagamento(formaPagamento);
}
private String nome;
private int formaPagamento;
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setFormaPagamento(int formaPagamento) {
this.formaPagamento = formaPagamento;
}
public int getFormaPagamento() {
return formaPagamento;
}
}

public enum Opcoes {
none(0),
cheque(1),
cartao(2),
dinheiro(4);

private int opcao;

Opcoes(int opcao) {
this.opcao = opcao;
}

public int getOpcao(){
return this.opcao;
}
}

public class Teste {
public static void main(String[] args){
Cliente c = new Cliente("Void", 7);
String msg ;
if(c.getFormaPagamento() == Opcoes.cheque.getOpcao())
msg = "Cheque";
else if (c.getFormaPagamento() == Opcoes.cartao.getOpcao())
msg = "Cartão";
else if (c.getFormaPagamento() == Opcoes.dinheiro.getOpcao())
msg = "Dinheiro";
else if(c.getFormaPagamento() == (Opcoes.cartao.getOpcao() | Opcoes.cheque.getOpcao()))
msg = "Cartão e Cheque";
else if (c.getFormaPagamento() == (Opcoes.cartao.getOpcao() | Opcoes.dinheiro.getOpcao()))
msg = "Cartão e Dinheiro";
else if (c.getFormaPagamento() == (Opcoes.cheque.getOpcao() | Opcoes.dinheiro.getOpcao()))
msg = "Cheque e Dinheiro";
else if (c.getFormaPagamento() == (Opcoes.cheque.getOpcao() | Opcoes.dinheiro.getOpcao() | Opcoes.cartao.getOpcao()))
msg = "Cheque, Cartão e Dinheiro";
else
msg = "Nenhuma";
System.out.println("Paga com " + msg + "!");
}
}

#2 Comentário enviado por f_Candido em 04/02/2011 - 21:17h
Opa,

Agradeço o comentário.

Obrigado...

Contribuir com comentário

Entre na sua conta para comentar.