Maison >Java >javaDidacticiel >Plusieurs classes Java peuvent-elles exister dans un seul fichier et quelles en sont les implications ?

Plusieurs classes Java peuvent-elles exister dans un seul fichier et quelles en sont les implications ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-02 13:50:10429parcourir

Can Multiple Java Classes Exist in One File, and What Are the Implications?

Déclarations de classes multiples dans un seul fichier Java

En Java, il est possible de définir plusieurs classes dans le même fichier source. Cependant, cette pratique présente plusieurs mises en garde et limites.

Absence de nom spécifique pour la technique

Bien qu'il s'agisse d'une pratique assez courante, cette technique n'a pas de nom spécifique ou nom officiel, contrairement à d'autres catégorisations de classe telles que les classes internes, imbriquées ou anonymes.

Compilation Limitations

Bien que la spécification du langage Java (JLS) indique que le système peut appliquer la restriction de référence à des classes non publiques dans d'autres unités de compilation, cette limitation n'est pas systématiquement implémentée dans tous les compilateurs Java.

Limites de Javac

Plus précisément, Javac peut émettre une erreur lors de la compilation d'une classe qui fait référence à un classe de niveau supérieur à partir d'un autre fichier si aucune des deux classes n'est l'homonyme du fichier dans lequel elles résident. Cette limitation est due à l'incapacité du compilateur à déterminer à quel fichier source référencer pour la classe non publique.

Évitement du problème

Pour éviter cette limitation, les développeurs adhèrent généralement à la convention consistant à placer une seule classe de niveau supérieur dans chaque fichier source. Cette pratique permet également une plus grande flexibilité dans la modification du niveau d'accès des classes sans affecter le processus de compilation.

Nouvelle fonctionnalité Javac

Les versions plus récentes de Javac fournissent également un avertissement lorsque rencontrer des classes auxiliaires référencées depuis l'extérieur de leur fichier source, encourageant encore davantage l'utilisation d'une seule classe de niveau supérieur par fichier.

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!

Déclaration:
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