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
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
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
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
/*
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"));
}
}
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 + "!");
}
}