Je suis allé à cette interview pour un poste de développeur de logiciels et ils m'ont donné un test avec des situations de coin-cas, avec généralement 4 options à choisir.
Une des questions avait une énumération déclarée en dehors de la portée de la classe, j'ai rapidement vérifié la réponse «ne compile pas» et suis allé de l'avant avec les autres questions. Il était quelque chose comme:Enum déclaré en dehors de la portée de la classe
enum Colors {BLUE,RED,GREEN}
class Test {
//other code, not really important with my question
}
Ce code compile en fait.
Outre le fait qu'une interview comme celle-ci (pourrait ou pourrait ne pas être utile pour savoir si l'on est un bon développeur, ce qui m'inquiète est: pourquoi devrais-je déclarer une énumération comme celle-ci? Pourquoi je ne peux le faire qu'avec enum? J'ai fait quelques tests et j'ai découvert qu'il est visible dans la classe, mais pas dans les autres classes.
Sidenote: J'ai marqué très mauvais: P. J'ai obtenu le maximum sur la théorie mais près de la plus basse possibile sur les situations de coin-cas-code. Je ne pense pas que je vais avoir le travail.
Il sera visible aux autres classes dans le même espace de noms, et pas seulement dans un fichier. La plupart des enums dans BCL sont déclarés en dehors d'une classe, tout comme l'exemple que vous avez fourni (sauf qu'ils sont publics). Donc la question est de savoir pourquoi * ne déclareriez-vous pas une énumération comme celle-ci? – Groo
Il est utile de vérifier si quelqu'un a travaillé avec le contrôle d'accès java et que les classes ne sont pas 100% de la forme public class A {private String field; méthode publique() {}} par défaut. –
@Groo: Oui, il est –