plusieurs classes et la méthode main en Java, et des paquets, les espaces de noms
Dans l'Éclipse du .java nom du fichier doit être le même que le nom de la classe. Est-il vrai dans tous les cas ou seulement pour Eclipse? Pour la méthode main, il semble que la principale fonction en C, mais la question est, est ce que si j'ai deux classes a la fois avec leur propre méthode principale et est-il possible de les relier? En outre, je peux écrire deux classes en une seule .fichier java? Je suis à l'aide d'Eclipse sous Windows, est-il le même que la version de Linux?
Pour les packages, mon livre raconte-moi un paquet est sorta un répertoire. Ainsi, pour spécifier un paquet appartient un fichier, puis-je juste besoin de dire "package my_pack"? Dois-je créer un répertoire comme /src/my_pack et de passer ma .fichier java-t-il?
Troisième, qu'est ce qu'un espace de noms? Quelle est sa relation avec les packages et les classes?
OriginalL'auteur OneZero | 2012-06-06
Vous devez vous connecter pour publier un commentaire.
Le fichier java doit avoir le même nom que la classe publique qui contient.
Oui, vous pouvez avoir deux classes dans le même projet qui ont un
static void main(String[] args) {...}
méthode, mais seulement 1 sera la classe principale de votre projet, et vous devez décider qui sera par la déclarer dans le fichier manifest.Lire plus à ce sujet:
Oui, vous le pouvez, aussi longtemps qu'il est juste une classe dans le fichier et le nom de la classe est le même que le nom du fichier:
TheClass.java fichier
EDIT:
Lorsque vous ne définissez pas l'accès du public à une classe, il pourrait avoir
default
ouprivate
d'accès, selon l'endroit où est déclarée. Dans l'exemple ci-dessus,SomeClass
aura unprivate
d'accès et peuvent être accessibles uniquement parTheClass
, tandis queAnotherClass
peut être accessible à partir de toutes les classes du même package. Cela signifie, les classes dans un package différent deedu.home.bean
ne peut pas accéder àAnotherClass
.Une bonne chose de Java est que le code est indépendant de la plateforme (pas comme en C ou C++), de sorte que vous pouvez transférer votre code de Windows à Linux et vice-versa, aussi longtemps que la Machine Virtuelle Java (JVM) est installé dans le système d'exploitation que vous souhaitez exécuter et/ou développer des projets Java.
Oui, le livre est bon. Lorsque vous avez un projet en Java, comme MyFirstJavaProject, vous avez défini un dossier source et les paquets à l'intérieur de ce dossier. Les packages seront les sous-dossiers de votre dossier source. Un exemple:
Structure de projet dans Eclipse:
Vous pouvez le faire manuellement, ou laissez votre IDE (dans ce cas, Eclipse) le faire pour vous, aussi facile que de créer les packages et les classes à l'intérieur de votre colis.
Java ne fonctionne pas avec les espaces de noms, au lieu d'utiliser des paquets pour faciliter le gérer/rapport de classes. Vous pouvez importer des classes à partir d'un autre package (1ère forme), ou utiliser la classe avec le nom complet du paquet (2ème forme).
Exemple de la 1ère forme:
Exemple de 2e forme:
OriginalL'auteur Luiggi Mendoza
1) C'est une Java chose. Le nom du fichier doit correspondre à la classe publique dans le fichier. Si il n'y a pas de classe, vous pouvez donner un nom à peu près tout. Si vous avez deux classes avec une méthode main, on peut appeler les autres. Ils sont liés, comme en C. Juste de compiler les uns contre les autres. Vous pouvez avoir deux classes dans le même fichier; un seul peut être public. Eclipse est très similaire à travers les systèmes d'exploitation. Il y a quelques différences de compte pour OS différences.
2) my_pack ne suit pas la bonne conventions de nommage. mon.pack de ou com.mon est un meilleur nom. Mais oui, vous voulez créer le répertoire.
3) Java n'utilise pas le terme d'espace de noms, mais je wikipédia dit un paquet, c'est comme un espace de noms.
Si aucune classe n'est public, à d'autres classes du même package peut y accéder. Une méthode main contiendraient SecondClass.main(args) en ce qui ferait appel de l'autre. Vous avez besoin de compiler à la fois à un certain point, de sorte que le .les fichiers de classe existent.
Mais depuis que les deux méthodes principales peuvent être exécutés et les deux sont compilées, comment fait-on pour savoir lequel est le vrai principaux? Cela ressemble à deux fonctions en C et le système peut les mélanger.
Il exécute l'un de vous en dire trop. Si vous exécutez "java ClassOne", il exécute la méthode main situé dans ClassOne. Si vous exécutez "java ClassTwo", il exécute la méthode main situé dans ClassTwo.
Juste pour ajouter ici, @user1229490 semble être confus au sujet de la façon dont le code Java est compilé. Vous voyez, chaque classe, même si il y a des centaines d'entre eux dans un seul fichier, ce sera compilé dans son propre .fichier de classe. Ensuite, vous dites
java
lequel vous souhaitez exécuter, en précisant son nom. Celui que vous avez spécifié doit avoir unpublic static void main
méthode.OriginalL'auteur Jeanne Boyarsky
Son la règle en java pour le public de la classe de même nom même que l' .java nom de fichier ,indépendamment de toute IDE .
Il peut y avoir plusieurs classes dans un .fichier java à condition que seul l'un d'entre eux a le même nom que celui de la classe.
OriginalL'auteur Sugandha Shimmers