Dans n'importe quel fichier Java, pourquoi pouvons-nous avoir une seule classe publique dont le nom est le même que le fichier Java nom?
Réponses
Trop de publicités?Elle oblige l'ensemble du code Java à être organisé d'une certaine façon, ce qui permet d'améliorer la lisibilité du code. La Java, les concepteurs ont choisi une approche stricte qui impose leur idée de bonnes pratiques de conception, et cela fait partie de ce thème. Voilà qui contraste avec le rien de va-attitude en Perl.
Selon cette source, il est pour l'efficacité de la compilation :
Dans la barre latérale, il explique pourquoi: "C' la restriction n'est pas encore appliquée par le compilateur, mais il est nécessaire pour package efficace à l'importation"
Il est assez évident - comme la plupart des choses une fois que vous connaissez les raisons de conception - le compilateur aurait à faire un supplémentaire de passer à travers toutes les les unités de compilation (.fichiers java) à comprendre ce que les classes étaient où, et qui ferait de la compilation encore plus lent.
La même chose s'applique aux importations de fichiers source dans les IDEs. Une autre raison serait raisonnable de la source de tailles.
La courtoisie du Dr Heinz Kabutz et son excellent bulletin....
Pourquoi est-ce que chaque classe publique dans un autre fichier?
C'est une question que j'ai souvent été demandé lors de mon des cours de. Jusqu'à maintenant, je n'ai pas eu une la bonne réponse à cette question. Dans la section 1, nous lisons: "Même si chacun de Chêne unité de compilation peut contenir plusieurs des interfaces ou des classes, au plus une de la classe ou de l'interface par compilation l'unité peut être public".
Dans la barre latérale, il explique pourquoi: "C' la restriction n'est pas encore appliquée par le compilateur, mais il est nécessaire pour package efficace à l'importation"
Il est assez évident - comme la plupart des choses une fois que vous connaissez les raisons de conception - le compilateur aurait à faire un supplémentaire de passer à travers toutes les les unités de compilation (.fichiers java) à comprendre ce que les classes étaient où, et qui ferait de la compilation encore plus lent.
Java utilise cette convention de trouver la classe/interface bytecode depuis le classpath et la numérisation de la hiérarchie des paquets dans des sous-répertoires. Système de fichiers de la représentation de cette hiérarchie applique également quelques règles de base.
- Deux Java des classes ou des interfaces dans le même package ne peut pas avoir le même nom. Les noms de fichier serait les conflits.
- Deux packages Java dans le même package parent ne pouvait pas ont le même nom. Les chemins de dossier serait en conflit.
- Une classe a de la visibilité à toutes les classes du même package sans modification pour le classpath.