Programmation Java/Extensions

Un livre de Wikibooks.

Programmation
Java
Logo java.JPG
Sommaire
IHM avec SWING
Annexes
Modifier ce modèle

Les extensions, ou packages, permettent de grouper ensemble des classes rattachées, à la manière des dossiers qui permettent de classer des fichiers.

Sections

[modifier] Utilisation

Le fichier à inclure dans une extension doit contenir le mot-clé 'package' suivi du nom de l'extension. Ce nom peut être composé de plusieurs mots séparé par un point ( . ).

[modifier] Exemple

pour inclure la classe Toto dans l'extension 'mesPackages.sousPackage1', écrire au début du fichier Toto.java :

package mesPackages.sousPackage1;
// ne pas oublier le point-virgule en fin de ligne

La structure des répertoires doit suivre le nom de l'extension, c'est-à-dire que le fichier Toto.java doit se situer dans un sous-répertoire mesPackages/sousPackage1/Toto.java.

Lorsqu'ensuite on désire utiliser la classe Toto depuis une autre classe, il faudra au préalable écrire :

import mesPackages.sousPackage1.Toto;

ou

import mesPackages.sousPackage1.*;
// importation de toutes les classes
// de l'extension mesPackage.sousPackage1

ou utiliser directement une référence à l'extension :

mesPackages.sousPackage1.Toto toto
    = new mesPackages.sousPackage1.Toto();

[modifier] Remarques

En Java, les programmeurs attribuent généralement un nom qui commence par une minuscule pour une extension, et un nom qui commence par une capitale pour une classe.

Les bibliothèques Java destinées à être distribuées regroupent leurs classes dans une ou plusieurs extensions dont le nom est normalement précédé par un nom de domaine (dans l'ordre inverse), par exemple :

package org.wikibooks.exemple;

[modifier] Compilation

L'utilisation d'une extension nécessite une structure des répertoires correspondant au nom de l'extension.

Par exemple, le fichier Toto.java définit la classe Toto de l'extension org.wikibooks.exemple débute par :

package org.wikibooks.exemple;
 
class Toto ...

et doit se situer dans le répertoire org/wikibooks/exemple.

Supposons que le chemin du fichier soit /home/me/javaprog/org/wikibooks/exemple/Toto.java. La compilation se fait en utilisant la commande suivante :

javac -classpath /home/me/javaprog org/wikibooks/exemple/Toto.java

Quand un programme Java utilise cette classe, il doit être compilé et exécuté en spécifiant /home/me/javaprog pour le paramètre classpath :

java -classpath /home/me/javaprog org.wikibooks.exemple.Toto

[modifier] Import statique

Pour utiliser les membres statiques publiques d'une classe, il faut nommer la classe ou ils sont définis.

Exemple 1:

double r = Math.cos(Math.PI * theta);

L'import statique permet d'importer les membres statiques d'une classe afin de ne pas nommer la classe en question.

Exemple 1:

// importer le membre statique PI seulement
import static java.lang.Math.PI;
...
double r = Math.cos(PI * theta);

Exemple 2:

// importer tous les membres statiques de la classe java.lang.Math
import static java.lang.Math.*;
...
double r = cos(PI * theta);

L'abus d'import statique n'est pas conseillé car le code ne contient plus de référence à la classe définissant le membre statique utilisé. Il ne faut l'utiliser que si les membres statiques d'un petit nombre de classes sont utilisés fréquemment.