1 Les paquetages («packages»)
2 L'objectif avec les paquetages («packages») est de rendre accessibles aux utilisateurs des classes définies par d'autres utilisateurs. Nous nous proposons d'illustrer la construction d'un package de nom polygones permettant la manipulation de polygones de différentes natures
3 Une classe abstraite Polygone Cette classe constitue le point de départ d'une hiérachie de classes : elle contient un certain nombre d'attributs communs à tous les polygones. Une définition minimale en est : 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.
4 Des classes étendant la classe abstraite Nous définissons ensuite différentes classes correspondant à quelques polygones particuliers. la classe Quadrilatere : 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"); } }
5 La classe Carre étend la précédente : 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
6 Utilisation du package L'application UsePolygones suivante utilise le package polygones que nous venons de construire import polygones.Polygone; import polygones.Quadrilatere; public class UsePolygones { public static void main(String[] arg) { Polygone pol = new Quadrilatere(); ((Quadrilatere)pol).coucou(); pol.type(); } }