DEV Community

Enumerações herdam de java.lang.enum

Restrições de enumerações em Java:

  1. Não podem herdar outra classe.
  2. Não podem ser superclasses.

Todas as enumerações herdam automaticamente da classe java.lang.Enum, que fornece métodos úteis, como:

ordinal():

  • Retorna a posição da constante na lista de constantes, começando em zero.

  • Exemplo: Na enum Transport, CAR tem ordinal 0, TRUCK tem ordinal 1, e assim por diante.

compareTo(tipo-enum e):

  • Compara o valor ordinal da constante chamadora com outra constante da mesma enumeração.

  • Retorna:

  • Valor negativo: se o valor ordinal da chamadora for menor.

  • Zero: se forem iguais.

  • Valor positivo: se for maior.

  • Apesar das restrições, enumerações funcionam como classes com comportamentos similares.

// Demonstra ordinal() e compareTo().
// Enumeração de meios de transporte.
enum Transport {
CAR, TRUCK, AIRPLANE, TRAIN, BOAT
}
class EnumDemo4 {
public static void main(String args[])
{
Transport tp, tp2, tp3;
// Obtém todos os valores ordinais usando ordinal().
System.out.println("Here are all Transport constants" +
" and their ordinal values: ");
for(Transport t : Transport.values())
System.out.println(t + " " + t.ordinal()); //Obtém os valores ordinais.
tp = Transport.AIRPLANE;
tp2 = Transport.TRAIN;
tp3 = Transport.AIRPLANE;
System.out.println();
// Demonstra compareTo()
if(tp.compareTo(tp2) < 0) //Compara valores ordinais
System.out.println(tp + " comes before " + tp2);
if(tp.compareTo(tp2) > 0)
System.out.println(tp2 + " comes before " + tp);
if(tp.compareTo(tp3) == 0)
System.out.println(tp + " equals " + tp3);
}
}

Top comments (0)