Enum déclarées hors de portée de classe

Je suis allé à cette interview pour un développeur de logiciel poste et ils m'ont donné un test avec un coin-cas-code situations, avec généralement de 4 options à choisir.

L'une des questions qui ont un enum déclarée en dehors de la portée de classe, j'ai rapidement coché la case "ne compile pas de" réponse et suis allé de l'avant avec les autres questions.
C'était quelque chose comme:

enum Colors {BLUE,RED,GREEN}

class Test {
    //other code, not really important with my question
}

Ce code compile.

Outre le fait qu'une interview comme ça (peut ou peut ne pas être utile de savoir si l'on est un bon développeur, ce qui m'inquiète, c'est: pourquoi ai-je déclarer une énumération de ce genre? Pourquoi je ne peux faire cela avec enum?
J'ai fait quelques tests et découvert qu'il est visible à l'intérieur de la classe, mais pas à d'autres classes.

Note: j'ai marqué vraiment pauvre :P. j'ai eu le max sur la théorie, mais à proximité de la plus faible possible sur le coin de cas code de situations. Je ne pense pas que je vais faire le travail.

  • Il sera visible par les autres classes dans le même espace de noms, non seulement à l'intérieur d'un fichier. La plupart des énumérations dans la BCL sont déclarées en dehors de la classe, tout comme l'exemple que vous avez fourni (sauf qu'ils sont publics). La question est donc pourquoi ne pas déclarer un enum comme ça?
  • Il est utile de vérifier si quelqu'un a travaillé avec le java de contrôle d'accès et les classes ne sont pas 100% du formulaire public class A{private String champ; publique de la méthode(){}} par défaut.
  • Oui, il est