L'objectif avec les paquetages («packages»)
est de rendre accessibles aux utilisatuers des classes définies
par d'autres, où qu'ils se trouvent.
Java propose l'utilisation du système de nommage d'Internet
pour assurer le nommage unique des classes.
Les éléments d'un paquetage sont des types définis éventuellement dans des sous-paquetages.
Nous nous proposons d'illustrer la construction d'un package
de nom polygones
permettant la manipulation de polygones de différentes natures.
PolygoneCette classe constitue le point de départ d'une hiérachie de classes : elle contient un certain nombre d'attributs communs à tous les polygones.
--> cat Polygone.java
package polygones; // appartenance au package de nom polygones
public abstract class Polygone {
int nombreCote;
public abstract void type();
}
|
Après compilation du fichier Polygone.java
correspondant, le fichier Polygone.class
obtenu est placé dans un répertoire de nom
polygones.
Nous définissons ensuite différentes classes correspondant à quelques polygones particuliers.
Quadrilatere :
--> cat Quadrilatere.java
package polygones;
public class Quadrilatere extends Polygone {
public Quadrilatere (){ nombreCote=4; }
public final void coucou(){
System.out.println("coucou\n"); }
public void type() {
System.out.println("L'objet est un quadrilatere. Il a" +
this.nombre_cote + " cotes"); }
}
-->
|
Carre
étend la précédente :
--> cat Carre.java
package polygones;
public class Carre extends Quadrilatere {
Carre() { super(); }
void type() {
System.out.println("L'objet est un carre. Il a " +
this.nombre_cote + " cotes"); }
}
-->
|
Après compilation, les fichiers .class
sont placés dans le répertoire
polygones
L'application UsePolygones suivante utilise le package polygones que nous venons de construire
--> cat UsePolygones.java
import polygones.Polygone;
import polygones.Quadrilatere;
public class UsePolygones {
public static void main(String[] arg) {
Polygone pol = new Quadrilatere();
((Quadrilatere)pol).coucou();
pol.type();
}
}
-->
|