Chargement...

Packages en Java

Placez la classe Bell dans un dossier nommé kit avec la première ligne package kit; et une méthode static ring() qui affiche ding. Dans Lobby.java à côté de ce dossier — pas à l'intérieur de kit — appelez kit.Bell.ring(); depuis main. Compilez depuis le dossier parent et lancez java Lobby. L'écran doit montrer une ligne : ding. Le nom du package et le nom du dossier correspondent. Appeler avec kit.Bell devant est ce que cette page enseigne. Laissez le mot import pour la page suivante.

Un nom de dossier que le fichier déclare

Jusqu'ici chaque classe était dans un dossier plat. Un package regroupe des classes sous un nom de dossier. La première ligne du fichier doit dire ce nom : package kit;. Le fichier Bell.java doit vivre dans un dossier appelé kit. Si le dossier et la ligne package ne correspondent pas, javac se plaint.
Créez d'abord le dossier kit. À l'intérieur créez Bell.java. La première ligne est package kit;. Puis la ligne public class est public class Bell. Ne laissez pas un ancien nom de classe Gate ou Tag ici. Écrivez une méthode static :
public static void ring() { System.out.println("ding"); }
Mettez public sur la méthode pour qu'une classe hors du package puisse l'appeler. Il n'y a pas de main dans Bell.java. Enregistrez avant de compiler.

Bell in package kit

java
package kit;

public class Bell {
    public static void ring() {
        System.out.println("ding");
    }
}

Lobby appelle kit.Bell.ring

Créez Lobby.java dans le dossier parent — au même niveau que le dossier kit, pas à l'intérieur de kit. Sa ligne public class est public class Lobby. Dans main, écrivez kit.Bell.ring();. N'écrivez pas import kit.Bell; sur cette page. Le nom complet kit.Bell suffit pour l'appel.
Gardez Lobby comme la classe qui contient main. Ne mettez pas main dans Bell pour cette leçon. Si un fichier Pier restant de la page access est encore à proximité, ne lancez pas java Pier pour cette leçon — lancez java Lobby après avoir compilé depuis le dossier parent.

Lobby calls kit.Bell.ring

java
public class Lobby {
    public static void main(String[] args) {
        kit.Bell.ring();
    }
}

Depuis le dossier parent qui contient à la fois Lobby.java et le dossier kit, lancez javac kit/Bell.java Lobby.java. Sous Windows la barre peut être kit\Bell.java dans la même idée — pointez javac vers le fichier dans le dossier package, puis vers Lobby.java. Quand parenthèses, accolades et points-virgules correspondent, javac n'écrit aucune ligne de son côté. Puis lancez java Lobby — pas java Lobby.java, et pas java kit.Bell. Enlevez la fin .java de la commande de lancement. Démarrez la classe qui contient main. Les mêmes commandes fonctionnent sous Windows et macOS une fois que les chemins correspondent à votre shell.
Le programme doit afficher une ligne et s'arrêter : ding. Il ne doit pas attendre que vous tapiez. Si le terminal attend le clavier, un appel nextLine d'un ancien exercice est encore dans un fichier. Supprimez-le et gardez kit.Bell.ring(); dans Lobby, avec package kit; dans Bell.
Parcourez l'exécution une fois. Java démarre à Lobby.main. L'appel kit.Bell.ring() trouve la classe Bell dans le package kit et exécute la méthode static. Le corps affiche ding. L'écran montre ding. Rien d'autre ne doit s'afficher. Si vous voyez 9 ou ok, vous lancez encore un ancien programme Pier ou Yard d'une page précédente.
Si Bell.java est à côté de Lobby.java sans dossier kit alors que le fichier dit encore package kit;, javac refuse. Déplacez le fichier dans kit. Si vous appelez Bell.ring(); sans kit. depuis l'extérieur du package, javac ne voit pas le nom court sur cette page — gardez kit.Bell.ring();. Le nom du package fait partie du nom complet du type jusqu'à ce que la page suivante enseigne import.

Dossier et ligne package côte à côte

Un court tableau garde la correspondance claire.

📊 folder vs package line

Élément Sur cette page
nom du dossier kit
première ligne dans Bell.java package kit;
appel depuis Lobby kit.Bell.ring();
import pas sur cette page — leçon suivante
Le tableau n'est qu'un rappel. Les pièces que vous gardez sont package kit; dans le fichier Bell, le chemin sous kit, et kit.Bell.ring(); dans Lobby.

Comparé avec access et avec un dossier plat

Sur la page access, Gate et Pier partageaient un dossier avec un champ private. Cela fonctionne encore. Cette page ajoute un dossier package et une ligne package. Une démo restante Gate g = new Gate(9); g.show(); est une autre leçon. Pour cette page gardez kit/Bell.java et Lobby.java et kit.Bell.ring();.
Vous pouvez encore utiliser des dossiers plats pour de toutes petites démos. Cette leçon choisit un package pour que vous voyiez le nom devant la classe. Ne mélangez pas g.show() et kit.Bell.ring() dans la même démo Lobby sur cette page. Un chemin clair suffit : ligne package, dossier correspondant, appel complet depuis Lobby.

Compilez depuis le parent, pas seulement depuis kit

Restez dans le dossier parent quand vous compilez et quand vous lancez java Lobby. Si vous faites cd dans kit et essayez de lancer Lobby depuis là sans corriger le classpath, le chemin court de la leçon casse. Gardez le parent comme dossier de travail pour cette page. Le fichier .class de Bell doit apparaître sous kit après une bonne compilation, à côté de Bell.java.
Si l'écran montre 9 ou ok, un ancien programme Pier ou Yard tourne encore. Passez à java Lobby. Si javac ne trouve pas kit.Bell, vérifiez l'orthographe du nom de dossier et la ligne package kit; caractère par caractère.

Ce que cela laisse pour import

Cette page tape le nom complet kit.Bell à chaque appel. Une page plus tard — import — montre comment import kit.Bell; vous laisse écrire le nom court Bell dans Lobby. Restez ici avec le nom complet. N'inventez pas import sur cette page sauf si vous le connaissez déjà ; le but de la leçon est le dossier package et kit.Bell.ring();.
Quand d'anciens fichiers Gate.java ou Pier.java sont encore dans le dossier parent, laissez-les ou supprimez-les seulement s'ils embrouillent votre commande de compilation. Lancez java Lobby après avoir compilé la paire package de cette leçon.

Avant import

Vous pouvez placer Bell.java sous le dossier kit avec package kit; et public static void ring() qui affiche ding, et depuis Lobby appeler kit.Bell.ring(); sans import. Compilez depuis le dossier parent et lancez java Lobby. L'écran montre ding. Le nom du package a correspondu au dossier. La page suivante est import, où un nom court suffit après une ligne import.
Gardez package kit; comme première ligne dans Bell. Gardez le fichier dans kit. Gardez l'appel comme kit.Bell.ring();. Ces trois habitudes sont le point de contrôle de cette page avant d'avancer. Quand l'écran montre ding depuis le dossier parent, la disposition package fait son travail pour cette leçon.

🧠 Testez Vos Connaissances

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
6
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 Instructions

  • Lisez chaque question attentivement
  • Sélectionnez la meilleure réponse pour chaque question
  • Vous pouvez refaire le quiz autant de fois que vous le souhaitez
  • Votre progression sera affichée en haut