English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, vamos aprender sobre enumerações no Java. Vamos aprender a criar e usar enumerações e classes de enumeração com a ajuda de exemplos.
No Java, uma enumeração é um tipo que possui um conjunto fixo de valores possíveis. Usamos a palavra-chave enum para declarar uma enumeração. Por exemplo,
enum Size { PEQUENO, MÉDIO, GRANDE, EXTRA GRANDE }
Aqui, criamos uma enumeração chamada Size.
Os valores dentro dos colchetes são chamados de valores de enumeração (constantes). Esses são os únicos valores que o tipo de enumeração pode manter.
Atenção:Os constantes de enumeração geralmente são representados em maiúsculas.
Vamos dar um exemplo simples.
enum Size { PEQUENO, MÉDIO, GRANDE, EXTRA GRANDE } class Main { public static void main(String[] args) { System.out.println(Size.SMALL); System.out.println(Size.MEDIUM); } }
Resultado de saída
SMALL MEDIUM
Pode-se ver no exemplo acima que usamos o nome da enumeração para acessar o valor constante.
Da mesma forma, podemos criar variáveis do tipo enumerativo. Por exemplo,
Size pizzaSize;
Aqui, pizzaSize é uma variável do tipo Size. Ela pode atribuir4valores.
pizzaSize = Size.SMALL; pizzaSize = Size.MEDIUM; pizzaSize = Size.LARGE; pizzaSize = Size.EXTRALARGE;
enum Size { PEQUENO, MÉDIO, GRANDE, EXTRA GRANDE } class Test { Size pizzaSize; public Test(Size pizzaSize) { this.pizzaSize = pizzaSize; } public void orderPizza() { switch(pizzaSize) { case SMALL: System.out.println("Eu pedi uma pizza pequena."); break; case MEDIUM: System.out.println("Eu pedi uma pizza média."); break; default: System.out.println("Eu não sei qual pedir."); break; } } } class Main { public static void main(String[] args) { Test t1 = new Test(Size.MEDIUM); t1.orderPizza(); } }
Resultado de saída
Eu pedi uma pizza média.
No programa acima, criamos um tipo enumerativo Size. Em seguida, declaramos a variável pizzaSize do tipo Size.
a variável pizzaSize pode atribuir4valores (SMALL, MEDIUM, LARGE, EXTRALARGE).
a variável pizzaSize atribuiu a constante MEDIUM. Baseado nisso, será impressa uma condição da instrução switch case.
Em Java, o tipo enumerativo é considerado um tipo especial de classe. Ele é no Java 5introduzido na versão.
uma classe enumerativa pode conter métodos e campos como uma classe convencional.
enum Size { constant1, constant2, ..., constantN; //Métodos e campos }
as constantes enumerativas são sempre públicas, estáticas e finais por padrão.
ao criar uma classe enumerativa, o compilador também criará uma instância (objeto) para cada constante enumerativa.
enum Size{ SMALL, MEDIUM, LARGE, EXTRALARGE; public String getSize() { //isto referenciará o objeto SMALL switch(this) { case SMALL: return \ case MEDIUM: return \ case LARGE: return \ case EXTRALARGE: return \ default: return null; } } public static void main(String[] args) { // System.out.println(\ + Size.SMALL.getSize()); } }
Resultado de saída
O tamanho da pizza é small
No exemplo acima, criamos uma classe enumeração Size. Ela tem quatro constantes SMALL, MEDIUM, LARGE e EXTRALARGE.
Como Size é uma classe enumeração, o compilador cria automaticamente uma instância para cada constante de enumeração.
Dentro do método main(), já usamos o exemplo SMALL para chamar o método getSize().
Como classes normais, as classes enumeração também podem conter construtores. Para obter mais informações, acesseConstrutores de Enumeração Java.
Existem alguns métodos pré-definidos na classe enumeração que podem ser usados a qualquer momento.
O método ordinal() retorna a posição do constante de enumeração. Por exemplo:
ordinal(SMALL) //retorna 0
O método compareTo() compara os constantes de enumeração com base no valor ordinal. Por exemplo:
Size.SMALL.compareTo(Size.MEDIUM) //retorna ordinal(SMALL) - ordinal(MEDIUM)
O método toString() retorna a representação em string do constante de enumeração. Por exemplo:
SMALL.toString() //retorna \
O método name() retorna o nome definido em string do constante de enumeração na forma de string. O valor retornado pelo método name() é final. Por exemplo:
name(SMALL) //retorna \
O método valueOf() usa uma string e retorna o constante de enumeração com o mesmo nome de string. Por exemplo:
Size.valueOf("SMALL") //retorna o constante SMALL
O método values() retorna um array de tipo enumeração contendo todos os constantes de enumeração. Por exemplo:
Size[] enumArray = Size.value();
No Java, foi introduzido o enum para substituir o uso de constantes int.
Suponha que usamos um conjunto de constantes int.
class Size { public final static int PEQUENO = 1; public final static int MÉDIO = 2; public final static int GRANDE = 3; public final static int EXTRA GRANDE = 4; }
Aqui, se imprimirmos a constante, surge um problema. Isso porque apenas imprime números, o que pode não ajudar.
Portanto, podemos usar simplesmente a enumeração, em vez de usar constantes int. Por exemplo,
enum Size { PEQUENO, MÉDIO, GRANDE, EXTRA GRANDE }
Isso torna nosso código mais intuitivo.
Da mesma forma, a enumeração oferece segurança de tipo no tempo de compilação.
Se declaramos uma variável do tipo Size (como mostrado no exemplo acima), podemos garantir que a variável conterá um dos quatro valores. Se tentarmos passar um valor além desses quatro, o compilador lançará um erro.