Guia do Iniciante para Java eNum – Por que e para que devo usar o Enum? Exemplos de enumeração Java
Publicados: 2019-04-23 Enums são listas de constants
como variáveis imutáveis. Você já ouviu falar da palavra- Final keyword
? É assim.
Quando você precisa de uma lista predefinida de valores que representam algum tipo de dados numéricos ou textuais, você deve usar um enum. Por exemplo, em um jogo de xadrez, você pode representar os diferentes tipos de peças como uma enumeração:
1 2 3 4 5 6 7 8 |
enum ChessPiece { PAWN , ROOK , KNIGHT , BISHOP , QUEEN , KING ; } |
Você sempre deve usar enums quando uma variável (especialmente um parâmetro de método) pode pegar apenas um de um pequeno conjunto de valores possíveis. Exemplos seriam coisas como constantes de tipo (status do contrato: “permanente”, “temp”, “aprendiz”) ou sinalizadores (“execute agora”, “adiar execução”).
Se você usar enums em vez de números inteiros (ou códigos String), aumentará a verificação em tempo de compilação e evitará erros ao passar constantes inválidas, além de documentar quais valores são válidos para uso.
Exemplo Java :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
package com . crunchify . tutorials ; /** * @author Crunchify.com */ public class CrunchifyEnumExample { public enum Company { EBAY , PAYPAL , GOOGLE , YAHOO , ATT } Company cName ; public CrunchifyEnumExample ( Company cName ) { this . cName = cName ; } public void companyDetails ( ) { switch ( cName ) { case EBAY : System . out . println ( "EBAY: Biggest Market Place in the World." ) ; break ; case PAYPAL : System . out . println ( "PAYPAL: Simplest way to manage Money." ) ; break ; case GOOGLE : case YAHOO : System . out . println ( "YAHOO: 1st Web 2.0 Company." ) ; break ; default : System . out . println ( "DEFAULT: Google - biggest search giant.. ATT - my carrier provider.." ) ; break ; } } public static void main ( String [ ] args ) { CrunchifyEnumExample ebay = new CrunchifyEnumExample ( Company . EBAY ) ; ebay . companyDetails ( ) ; CrunchifyEnumExample paypal = new CrunchifyEnumExample ( Company . PAYPAL ) ; paypal . companyDetails ( ) ; CrunchifyEnumExample google = new CrunchifyEnumExample ( Company . GOOGLE ) ; google . companyDetails ( ) ; CrunchifyEnumExample yahoo = new CrunchifyEnumExample ( Company . YAHOO ) ; yahoo . companyDetails ( ) ; CrunchifyEnumExample att = new CrunchifyEnumExample ( Company . ATT ) ; att . companyDetails ( ) ; } } |
Saída:
1 2 3 4 5 6 7 |
EBAY : Biggest Market Place in the World . PAYPAL : Simplest way to manage Money . YAHOO : 1st Web 2.0 Company . YAHOO : 1st Web 2.0 Company . DEFAULT : Google - biggest search giant . . ATT - my carrier provider . . Process finished with exit code 0 |
Alguns pontos muito importantes sobre Java Enum:
Ponto-1
Todos os enums estendem implicitamente java.lang.Enum
. Como Java não suporta herança múltipla, um enum não pode estender mais nada.
Ponto-2
Enum in Java are type-safe:
Enum tem seu próprio namespace. Isso significa que sua enumeração terá um tipo, por exemplo, "Empresa" no exemplo abaixo e você não pode atribuir nenhum valor além do especificado em Constantes de enumeração.
1 2 3 4 5 6 |
public enum Company { EBAY , PAYPAL , GOOGLE , YAHOO , ATT } Company cName = Company . EBAY ; cName = 1 ; // Compilation Error |

Ponto-3
Você pode especificar valores de constantes de enumeração no momento da criação. MyEnum.values()
retorna uma matriz de valores de MyEnum.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
package com . crunchify . tutorial ; /** * @author Crunchify.com */ public class CrunchifyEnumExample { public enum Company { EBAY ( 30 ) , PAYPAL ( 10 ) , GOOGLE ( 15 ) , YAHOO ( 20 ) , ATT ( 25 ) ; private int value ; private Company ( int value ) { this . value = value ; } } public static void main ( String [ ] args ) { for ( Company cName : Company . values ( ) ) { System . out . println ( "Company Value: " + cName . value + " - Company Name: " + cName ) ; } } } |
Saída:
1 2 3 4 5 |
Company Value : 30 - Company Name : EBAY Company Value : 10 - Company Name : PAYPAL Company Value : 15 - Company Name : GOOGLE Company Value : 20 - Company Name : YAHOO Company Value : 25 - Company Name : ATT |
Ponto-4
As constantes de enumeração são implicitamente estáticas e finais e não podem ser alteradas uma vez criadas.
Ponto-5
Enum pode ser comparado com segurança usando:
- Declaração de caso de comutação
- == Operador
- Método .equals()Por favor, siga o tutorial completo.
1 2 3 4 |
Company eBay = Company . EBAY ; if ( eBay == Company . EBAY ) { log . info ( "enum in java can be compared using ==" ) ; } |
Ponto-6
Você não pode criar instâncias de enums usando o operador new em Java porque o construtor de Enum em Java só pode ser privado e as constantes de Enums só podem ser criadas dentro do próprio Enums.
Ponto-7
A instância de Enum em Java é criada quando qualquer constante de Enum é chamada ou referenciada pela primeira vez no código.
Ponto-8
Um enum especifica uma lista de valores constantes atribuídos a um tipo.
Ponto-9
Um enum pode ser declarado fora ou dentro de uma classe, mas NÃO em um método.
Ponto-10
Um enum declarado fora de uma classe NÃO deve ser marcado como static, final, abstract, protected ou private
Ponto-11
Enums podem conter construtores, métodos, variáveis e corpos de classes constantes.
Ponto-12
constantes enum podem enviar argumentos para o construtor enum, usando a sintaxe BIG(8), onde o literal int 8 é passado para o construtor enum.
Ponto-13
construtores enum podem ter argumentos e podem ser sobrecarregados.
Ponto-14
construtores enum NUNCA podem ser invocados diretamente no código. Eles são sempre chamados automaticamente quando um enum é inicializado.
Ponto-15
O ponto e vírgula no final de uma declaração de enumeração é opcional.
Estes são legais:
- enum Foo { UM, DOIS, TRÊS}
- enum Foo { UM, DOIS, TRÊS};
Outro exemplo simples de Java eNUM:
Enums são listas de constantes. Quando você precisa de uma lista predefinida de valores que representam algum tipo de dados numéricos ou textuais, você deve usar um enum.
Você sempre deve usar enums quando uma variável (especialmente um parâmetro de método) pode pegar apenas um de um pequeno conjunto de valores possíveis. Exemplos seriam coisas como constantes de tipo (status do contrato: “permanente”, “temp”, “aprendiz”) ou sinalizadores (“execute agora”, “adiar execução”).
Se você usar enums em vez de números inteiros (ou códigos String), aumentará a verificação em tempo de compilação e evitará erros ao passar constantes inválidas, além de documentar quais valores são válidos para uso.
Entre, o uso excessivo de enums pode significar que seus métodos fazem muito (geralmente é melhor ter vários métodos separados, em vez de um método que recebe vários sinalizadores que modificam o que ele faz), mas se você precisar usar sinalizadores ou códigos de tipo, enums são o caminho a seguir.
Este é um exemplo de Java eNum muito simples
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
package com . crunchify . tutorials ; /** * @author Crunchify.com */ public enum CrunchifyEnumCompany { GOOGLE ( "G" ) , YAHOO ( "Y" ) , EBAY ( "E" ) , PAYPAL ( "P" ) ; private String companyLetter ; private CrunchifyEnumCompany ( String s ) { companyLetter = s ; } public String getCompanyLetter ( ) { return companyLetter ; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package com . crunchify . tutorials ; import com . crunchify . tutorials . CrunchifyEnumCompany ; /** * @author Crunchify.com */ public class CrunchifyEnumExample { public static void main ( String [ ] args ) { System . out . println ( "Get enum value for Comapny 'eBay': " + CrunchifyEnumCompany . EBAY . getCompanyLetter ( ) ) ; } } |
Saída:
1 |
Get enum value for Comapny 'eBay' : Value : E |