Recursos de enumeração
1. Use enum para definir uma classe de enumeração que herda a classe java.lang.Enum por padrão em vez da classe Object. Entre elas, a classe java.lang.Enum implementa duas interfaces: java.lang.Serializable e java.lang.Comparable.
2. O construtor de uma classe de enumeração só pode usar o modificador de acesso privado. Se o modificador de controle de acesso de seu construtor for omitido, a modificação privada será usada por padrão;
3. Todas as instâncias da classe de enumeração devem ser explicitamente listadas na classe de enumeração, caso contrário esta classe de enumeração nunca será capaz de gerar instâncias. Quando essas instâncias são listadas, o sistema adiciona automaticamente modificações finais estáticas públicas sem a necessidade dos programadores adicioná-las explicitamente.
},QUI{
String pública paraLocaleString(){
retornar "quinta-feira";
}
},SEX{
String pública paraLocaleString(){
retornar "sexta-feira";
}
},SENTADO{
String pública paraLocaleString(){
retornar "Sábado";
}
},SOL{
String pública paraLocaleString(){
retornar "domingo";
}
};
público abstrato String toLocaleString();
}
método int compararTo
String name() retorna o nome da instância de enumeração
int ordinal() retorna o índice do valor da enumeração na enumeração
String toString() retorna o nome da instância da enumeração que é mais comumente usada que o nome
valor estático públicoOf()
}
private Lamp(String oposto,String próximo,boolean iluminado){
isto.oposto = oposto;
este.próximo = próximo;
this.lighted = iluminado;
}
/*Se a luz atual está verde*/
booleano privado iluminado;
/*A direção correspondente em que a luz atual fica verde ao mesmo tempo*/
string privada oposta;
/*A próxima luz ficará verde quando a luz atual ficar vermelha*/
String privada próxima;
público booleano isLighted(){
retorno iluminado;
}
/**
* Quando uma determinada luz fica verde, a luz na direção correspondente também fica verde.
*/
luz pública vazia(){
isto.iluminado = verdadeiro;
if(oposto != nulo){
Lamp.valueOf(oposto).light();
}
System.out.println(name() + "A lâmpada está verde, deve haver um total de 6 direções abaixo onde você pode ver os carros passando!");
}
/**
* Quando uma determinada luz fica vermelha, a luz na direção correspondente também fica vermelha e a luz na próxima direção fica verde
* @return O próximo semáforo ficará verde
*/
apagão da lâmpada pública(){
this.lighted = falso;
if(oposto != nulo){
Lamp.valueOf(oposto).blackOut();
}
Lâmpada nextLamp= null;
if(próximo! = nulo){
nextLamp = Lamp.valueOf(próximo);
System.out.println("A luz verde muda de " + name() + "--------> para " + next);
nextLamp.light();
}
retornar próxima lâmpada;
}
}