- Utilizados para definir opções fixas de um tipo específico
- É possível adicionar código mais complexo a um enum
- Os valores de um enum são instâncias do tipo de enum
- Os valores de um enum são implicitamente
public
, static
e final
public enum Condition {
HOT, WARM, COLD; // HOT, WARM e COLD são implicitamente instâncias de Condition
}
public enum Condition {
HOT("Warning HOT!"), // isso é implicitamente uma chamada ao construtor
WARM("Just right"),
COLD("Warning COLD!");
private String caution;
/*
Se fosse público seria possível adicionar opções fora da definição de Condition.
Já que cada opção é uma instância de Condition, criando novas, haveriam outras
opções.
*/
private Condition(String caution) {
this.caution = caution;
}
public String getCaution() {
return caution;
}
}