Déclarations de classes multiples dans un seul fichier Java
En Java, il est possible de définir plusieurs classes de niveau supérieur dans un seul fichier, mais avec la restriction qu'une seule de ces classes peut être publique (conformément au JLS §7.6).
Y a-t-il un terme spécifique pour cela technique ?
Bien qu'il n'y ait pas de nom formel pour cette pratique analogue aux classes « internes », « imbriquées » ou « anonymes », elle peut être qualifiée de classes multiples de haut niveau. déclaration de classe.
Les classes secondaires ne peuvent-elles pas être référencées dans d'autres compilations unités ?
Le JLS indique en effet que la machine virtuelle Java (JVM) peut imposer une restriction selon laquelle ces classes secondaires ne peuvent pas être « référencées par code dans d'autres unités de compilation du package ». Cependant, cette limitation n'est pas appliquée de manière cohérente dans toutes les implémentations Java.
Explication du comportement d'implémentation de Java
Bien que certaines implémentations Java n'interdisent pas activement ce référencement croisé de fichiers, elles ont des limites qui le découragent effectivement. Par exemple, si une classe publique nommée Foo fait référence à une autre classe de niveau supérieur nommée Bar à partir d'un fichier différent, la compilation de Foo peut échouer avec une erreur similaire : "impossible de trouver le symbole : classe Baz". Cette erreur survient car le compilateur ne sait pas quel fichier source rechercher pour la classe Bar référencée.
Pour éviter ces problèmes, il est conseillé de limiter chaque fichier source à une seule classe de niveau supérieur, à moins que la classe secondaire les classes doivent accéder à la classe publique pour une raison quelconque.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!