Fonctionnalités d'énumération
1. Utilisez enum pour définir une classe d'énumération qui hérite par défaut de la classe java.lang.Enum au lieu de la classe Object. Parmi elles, la classe java.lang.Enum implémente deux interfaces : java.lang.Seriallessly et java.lang.Comparable.
2. Le constructeur d'une classe d'énumération ne peut utiliser que le modificateur d'accès privé. Si le modificateur de contrôle d'accès de son constructeur est omis, la modification privée est utilisée par défaut ;
3. Toutes les instances de la classe d'énumération doivent être explicitement répertoriées dans la classe d'énumération, sinon cette classe d'énumération ne pourra jamais générer d'instances. Lorsque ces instances sont répertoriées, le système ajoute automatiquement les modifications finales statiques publiques sans que les programmeurs aient besoin de les ajouter explicitement.
},JEU{
chaîne publique toLocaleString(){
renvoyer « jeudi » ;
}
},VEN{
chaîne publique toLocaleString(){
renvoyer « vendredi » ;
}
},ASSIS{
chaîne publique toLocaleString(){
retourner "samedi" ;
}
},SOLEIL{
chaîne publique toLocaleString(){
retourner « dimanche » ;
}
} ;
public abstract String toLocaleString();
}
méthode int compareTo
String name() renvoie le nom de l'instance d'énumération
int ordinal() renvoie l'index de la valeur d'énumération dans l'énumération
String toString() renvoie le nom d'instance de l'énumération qui est plus couramment utilisé que name
valeur statique publiqueDe()
}
Lampe privée (chaîne opposée, chaîne suivante, booléenne éclairée) {
this.opposé = opposé ;
this.next = suivant;
this.lighted = éclairé ;
}
/*Si le voyant actuel est vert*/
booléen privé éclairé ;
/*La direction correspondante dans laquelle le feu actuel est vert en même temps*/
chaîne privée en face ;
/*Le prochain feu passera au vert lorsque le feu actuel deviendra rouge*/
chaîne privée suivante ;
public booléen isLighted(){
retour éclairé;
}
/**
* Lorsqu'un certain feu devient vert, le feu dans sa direction correspondante devient également vert.
*/
lumière vide publique(){
this.lighted = vrai;
if(ci-contre != null){
Lamp.valueOf(ci-contre).light();
}
System.out.println(name() + "La lampe est verte, il devrait y avoir un total de 6 directions en dessous où vous pouvez voir les voitures passer !");
}
/**
* Lorsqu'un certain feu devient rouge, le feu dans la direction correspondante devient également rouge et le feu dans la direction suivante devient vert.
* @return Le prochain feu passera au vert
*/
Lampe publique blackOut(){
this.lighted = faux ;
if(ci-contre != null){
Lamp.valueOf(ci-contre).blackOut();
}
Lampe nextLamp= null ;
si(suivant != null){
nextLamp = Lamp.valueOf(suivant);
System.out.println("Le voyant vert passe de " + name() + "--------> à " + next);
nextLamp.light();
}
retourner nextLamp ;
}
}