Packages

Un package est une unité (un fichier) regroupant des classes.

Pour créer un tel package, il suffit de commencer le fichier source contenant les classes à  regrouper par l'instruction package suivi du nom que l'on désire donner au package.

Les packages sont organisés sous forme de hiérarchie. Par example, voir Swing hierarchy

nom de la classe: graphics.Rectangle;
pathname: graphics/Rectangle.java;

CLASSPATH

Pour que le compilateur puisse trouver le package, il est essentiel qu'il "connaisse" l'emplacement du package. Pour cela Java utilise une variable d'environnement (dans le même ordre d'idée que la variable d'environnement PATH) appelée CLASSPATH donnant la liste des chemins d'accès aux classes.

Pour définir la variable d'environnement CLASSPATH

  • sous Linux, il faut utiliser la commande suivante:
          export CLASSPATH = :;...
    
    par exemple:
          export CLASSPATH = :.:/u/eckdoug/java:/usr/lib/jdkx.x.x/lib/classes.zip:...
    
  • sous Windows, il faut utiliser la commande suivante:
          SET CLASSPATH = ;;...
    
    par exemple:
          SET CLASSPATH = c:\java;c:\jdkx.x.x\lib\classes.zip;...
    

L'instruction import

Pour pouvoir accèder aux classes d'un package à  partir d'une classe ne faisant pas partie du package, il suffit de donner le chemin d'accès relatif à  la classe lorsque vous faîtes appel à  elle. Ainsi, pour faire appel à  la classe MaClasse du package MonPackage, il suffit d'écrire:

MonPackage.MaClasse

Toutefois il s'avére vite embarrassant d'avoir à écrire constamment le chemin d'une classe, ainsi il est généralement pratique d'utiliser l'instruction import, suivie du chemin de la classe:

import MonPackage.MaClasse;

Il est également possible d'importer toutes les classes d'un package par la syntaxe:

import MonPackage.*;

Accès aux variables (encore)

modificateur (dans la super-classe)

(Accès) Où est la classe?

public

protected

(par défaut)

private

(Sous-Classe) Dans le même package

Oui

Oui

Oui

Non

(Sous-classe) Dans différents packages

Oui

Oui

Non

Non

(Dehors) Méme package

Oui

Oui

Oui

Non

(Dehors) Différents packages

Oui

Non

Non

Non

Examples

UseOranges.java

orange/Orange.java

orange/OrangeSac.java

orange/EmptyOrangeSacException.java (pour Java exceptions, 02-04-2004)

Retour à la page principale d'ift1020
Last modified: Tue Sep 28 13:24:59 EDT 2004 par Douglas Eck [douglas D0T eck AT umontreal D0T ca]