Paquetages
Pour faciliter la modularité, Java fournit le mécanisme de
paquetage.
Utilisation d'un paquetage
Pour pouvoir utiliser une classe dans un code n'appartenant au même
paquetage, on peut soit faire précéder le nom de cette classe
du nom du paquetage, soit importer la classe à l'aide du mot clé
import.
Cette deuxième solution est généralement celle utilisée.
Par exemple, si vous souhaitez utiliser la classe Vector du paquetage java.util,
vous devez au début de votre fichier (derrière l'éventuelle
déclaration package <nom>;)
rajouter :
import java.util.Vector;
Si plusieurs classes de ce paquetage sont utilisées, vous pouvez
utiliser un seul import :
import java.util.*;
Bien sûr, il faut également que les contrôles d'accès
sur la classe importée permette son utilisation.
Attention, le * ne permet le chargement que des classes appartenant
directement au paquetage et non celles appartenant à un éventuel
sous-paquetage.
Création d'un paquetage
Le paquetage d'une classe est défini par la déclaration package
<nom>; située au tout début du fichier. Le nom du
paquetage peut être formé d'un ou plusieurs mots qui sont
alors séparés par des points. Ces mots sont en minuscule.
Découpage
Un bon découpage en paquetages et sous-paquetages est un problème
de conception modulaire, ce qui nécessite une bonne maîtrise
de la programmation en général et de la programmation par
les objets en particulier !
Compilation et exécution
Si vous utilisez les paquetages, vous devrez faire particulièrement
attention à l'organisation de vos fichiers. En effet, Java est capable
de compiler des fichiers sources "à la volée". Donc s'il
trouve en utilisant la variable CLASSPATH ou l'option
-classpath
de javac un fichier .java avant le fichier correspondant
.class,
il le recompilera, ce qui non seulement ralentira l'exécution, mais
pourra même la faire échouer.
Il est donc indispensable de bien séparer les fichiers objets
des fichiers sources.
D'autre part, Java créera pour chaque mot du nom du paquetage
(séparés par des points) un sous-répertoire. Ainsi,
si vous compilez le fichier Devise.java du paquetage
gestion.devise,
le chemin d'accès au fichier compilé se terminera par gestion/devise/Devise.class.
Le répértoire gestion sera lui même dans le
répértoire précisé par l'option -d
de javac, ou dans le répertoire courant si -d
n'est pas utilisée.