JAVA - II Paquets Notion de paquet (package) Un paquet regroupe sous un même espace de nommage des classes ayant un lien logique, thématique, etc. Un paquet équivaut à un répertoire contenant des fichiers classes L'arborescence des répertoires contenant les classes doit être identique à l'arborescence des packages Un paquet peut contenir des sous-paquets 2 JL Damoiseaux - Dpt R&T sources packages répertoires Package Forme; ... Forme Package Forme.2D; ... 2D Package Forme.3D; ... 3 3D JL Damoiseaux - Dpt R&T Notion de paquet (II) Pour utiliser des classes contenues dans un paquet, il faut : – – utiliser leur nom long package.souspackage.Classe utiliser la clause import java.awt.List est le nom long d'une classe du paquet java.awt dont le nom court est List import package.* donne accès à toutes les classes contenues dans package le paquet de base java.lang est automatiquement importé (import java.lang.*;) et ses classes sont directement accessibles par leur nom court 4 JL Damoiseaux - Dpt R&T Exemple java.util.Scanner clavier = new java.util.Scanner(java.lang.System.in); java.lang.System.out.println(java.lang.Math.PI); import java.util.Scanner; Scanner clavier = Scanner(System.in); System.out.println(Math.PI); 5 JL Damoiseaux - Dpt R&T Création d'un paquet L'instruction package doit être la première instruction du fichier source, et indique à quel paquet appartient la ou les classe(s) du fichier S'il n'y a pas d'instruction package dans le fichier, une classe appartient au paquet anonyme qui existe par défaut package forme; 6 class Cercle { double x, y, r; void Cercle(double x, double y, double r) { this.x = x; this.y = y; this.r = r; } class Carre { … } JL Damoiseaux - Dpt R&T Paquets et visibilité (I) class c1 { private int A; public int D; Package P1 Package P2 class c4 extends C1 { ... } } class c2 extends C1 { ... } 7 class c5 { ... } class c3 { ... } Accessible depuis C2 Accessible depuis C3 Accessible depuis C4 Accessible depuis C5 A - D o o o o JL Damoiseaux - Dpt R&T Paquets et visibilité (II) class c1 { private int A; int B; public int D; Package P1 Package P2 class c4 extends C1 { ... } } class c2 extends C1 { ... } 8 class c5 { ... } class c3 { ... } Accessible depuis C2 Accessible depuis C3 Accessible depuis C4 Accessible depuis C5 A - B o o - D o o o JL Damoiseaux - Dpt R&T o Paquets et visibilité (III) class c1 { private int A; int B; protected int C; public int D; Package P1 Package P2 class c4 extends C1 { ... } } class c2 extends C1 { ... } 9 class c5 { ... } class c3 { ... } Accessible depuis C2 Accessible depuis C3 Accessible depuis C4 Accessible depuis C5 A - B o o - C D o o o o o o JL Damoiseaux o - Dpt R&T