« Salut, Amigo ! Aujourd'hui, nous allons discuter des packages. »

« Les fichiers sur un ordinateur sont regroupés dans des dossiers. Les classes en Java (toutes les classes sont stockées dans un fichier séparé) sont regroupées en paquets, qui correspondent à des dossiers sur le disque dur. Rien de nouveau ici. Il y a deux choses que j'aimerais souligner ici, cependant. »

« La première est qu'un nom de classe unique complet se compose du nom de package et du nom de la classe. Voici quelques exemples : »

Nom unique complet Nom du package Nom de la classe
java.io.FileInputStream java.io FileInputStream
java.lang.String java.lang String
java.util.ArrayList java.util ArrayList
org.apache.tomcat.Servlet org.apache.tomcat Servlet
Chat Non spécifié Chat

« Un nom complet de classe est toujours unique. »

« Ce serait pénible si nous devions écrire un nom long, comme java.util.ArrayList, chaque fois. Voilà pourquoi Java te permet d'importer des classes. Tu peux utiliser les noms courts d'autres classes dans ton code, mais au début de ta classe, tu dois indiquer explicitement les classes que tu utiliseras. »

« Comment est-ce qu'on s'y prend ? »

« Avec une ligne qui ressemble à ceci : import java.util.ArrayList; »

« Au début d'une classe, immédiatement après avoir déclaré le package, tu peux indiquer à quelle classe tu fais référence lorsque tu utilises ArrayList dans ton code. »

« Pourquoi compliquer les choses ? Les classes peuvent avoir des noms identiques ? »

« Oui. Il peut y avoir des classes avec le même nom dans différents packages. Nous ne pouvons pas importer deux classes avec des noms identiques, donc nous devons appeler une d'elles par son nom complet. »

« Voici une analogie pour toi. Tu as un collègue qui s'appelle Jim. Pas de problème jusque-là : tout le monde sait qui il est. Mais s'il y avait trois Jim dans ton bureau, tu devrais les appeler par leur nom unique complet pour éviter toute confusion. »

« Deuxièmement, il est toujours préférable de placer les classes dans des packages, et pas le dossier racine src. Lorsque tu n'as pas beaucoup de classes, ce n'est pas un problème, mais quand il y en a beaucoup, c'est facile de s'embrouiller avec. Crée toujours tes classes à l'intérieur de packages. »

En Java, la pratique courante consiste à donner des noms intelligibles aux packages et aux classes. De nombreuses entreprises publient leurs bibliothèques (ensembles de classes) et les nomment comme leur entreprise ou leur site Web pour éviter toute confusion : »

Nom du package Nom d'entreprise/projet
org.apache.common
org.apache.tomcat
org.apache.util
Apache
com.oracle.jdbc Oracle
java.io
javax.servlet
Sun, Java
com.ibm.websphere IBM, WebSphere
com.jboss JBoss