Restrições de enumerações em Java:
- Não podem herdar outra classe.
- 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)