précédent | suivant | table des matières | s'évaluer |
Java offre la possibilité de regrouper les classes en ensembles appelés package. Ceci permet de ranger les classes de façon hiérarchique.
Exemple : le paquetage java a la structure suivante :
java | applet | awt | beans | io | lang | | ArithmeticException | | ... | | Boolean | | Class | | Object | | reflect | | | ... | | | Method | | | ... | | String | | Math | | ... | net | rmi | security | sql | text | util | ... |
Le paquetage contenant les classes concernant les applet L'abstract Windowing Toolkit Le paquetage des classes gérant les entrées-sorties. Le paquetage contenant les classes de base de Java. La classe Classe La classe Object Le paquetage des classes pour le réflexion. La classe String représentation des chaînes de caractères. La classe Math contenant PI, E et les méthodes mathématiques usuelles. Le paquetage des classes réseau. Le paquetage des classes utilitaires. |
Sous Windows® les paquetages sont effectivement rangés dans une structure de répertoire.
package monPaquetage; class X{ ... } |
La classe X appartient au paquetage monPaquetage. |
package monPaquetage.monSousPaquetage; class Y{ ... } |
La classe Y appartient au paquetage monPaquetage.monSousPaquetage. |
Lorsqu’on utilise les classes X et Y en dehors de leur paquetage, on peut :
import monPaquetage.*; import monSousPaquetage.*; X ou Y
Il y a problème si deux paquetages différents contiennent deux classes de même nom :
Les paquetages java.util et java.sql contiennent tous les deux une classe Date :
import java.util.*;
import java.sql.*;
...
Date d; // erreur de compilation
La solution est alors de nommer complètement la classe :
import java.util.*;
import java.sql.*;
java.util.Date d; // OK
Une classe, un attribut ou une méthode, dont la définition n’est pas précédée de public, private ou protected, a une portée limitée au paquetage dans lequel il ou elle est défini.