Maison > Java > javaDidacticiel > le corps du texte

Plusieurs classes de niveau supérieur peuvent-elles exister dans un seul fichier Java ?

Barbara Streisand
Libérer: 2024-11-27 13:27:11
original
644 Les gens l'ont consulté

Can Multiple Top-Level Classes Exist in a Single Java File?

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal