30/12/2015
Les packages
Accueil
Cours
Apprenez programmer en Java
Les packages
Apprenez programmer en Java
2 < @ ?
Z
40 heures
& Difficile
Licence
8
LES PACKAGES
% $
-
Lorsque nous avons t confront s pour la premi re fois aux packages, c' tait pour importer la classe Scanner via
l'instruction import java.util.Scanner; . Le fonctionnement des packages est simple comprendre : ce sont
comme des dossiers permettant de ranger nos classes. Charger un package nous permet d'utiliser les classes qu'il
contient.
Il n'y aura rien de franchement compliqu dans ce chapitre si ce n'est que nous reparlerons un peu de la port e des
classes Java.
Cr ation d'un package
T
L'un des avantages des packages est que nous allons y gagner en lisibilit dans notre package par d faut, mais aussi
que les classes mises dans un package sont plus facilement transportables d'une application l'autre. Pour cela, il
vous suffit d'inclure le dossier de votre package dans un projet et d'y importer les classes qui vous int ressent !
Pour cr er un nouveau package, cliquez simplement sur cette ic ne comme la figure suivante (vous pouvez aussi
effectuer un clic droit puis New > Package ).
Une bo te de dialogue va s'ouvrir et vous demander le nom de votre package, comme la figure suivante.
Nouveau package
https://openclassrooms.com/courses/apprenez a programmer en java/les packages
1/6
30/12/2015
Les packages
Nom du package
Il existe aussi une convention de nommage pour les packages :
ceux-ci doivent tre crits enti rement en minuscules ;
Advertisement
les caract res autoris s sont alphanum riques (de a z, de 0 9) et peuvent contenir des points (.) ;
tout package doit commencer par com, edu, gov, mil, net, org ou les deux lettres identifiant un pays (ISO
Standard 3166, 1981) ; fr correspond la France, en correspond l'Angleterre (pour England)etc.
aucun mot cl Java ne doit tre pr sent dans le nom, sauf si vous le faites suivre d'un underscore ( _ ), comme
ceci : com.sdz.package_ .
Comme ce cours est issu du Site du Z ro, j'ai pris le nom l'envers : sdz.com nous donne com.sdz . Pour le cas qui
nous occupe, appelons-le com.sdz.test . Cliquez sur Finish pour cr er le package. Et voil : celui-ci est pr t
l'emploi.
Je vous invite aller voir dans le dossier o se trouvent vos codes sources : vous constaterez qu'il y a
l'arborescence du dossier com/sdz/test dans votre dossier src .
Vous conviendrez que la cr ation d'un package est tr s simple. Cependant, je ne peux pas vous laisser sans savoir que
la port e de vos classes est affect e par les packages&
Droits d'acc s entre les packages
Lorsque vous avez cr votre premi re classe, vous avez vu qu'Eclipse met syst matiquement le mot cl public
devant la d claration de la classe. Je vous avais alors dit que public class Ville et class Ville taient
https://openclassrooms.com/courses/apprenez a programmer en java/les packages
T
2/6
30/12/2015
Les packages
sensiblement diff rents et que le mot cl public influait sur la port e de notre classe. En fait, une classe d clar e
avec le mot cl public sera visible m me l'ext rieur de son package, les autres ne seront accessibles que depuis
l'int rieur du package : on dit que leur port e est default .
Afin de vous prouver mes dires, je vous invite cr er un second package : je l'ai appel com.sdz.test2 . Dans le
premier package, com.sdz.test , cr ez une classe A de port e public et une classe B de port e default ,
comme ceci (j'ai volontairement d clar les variables d'instance public afin d'all ger l'exemple) :
1
2
3
4
5
1
2
3
4
5
package com.sdz.test;
class B {
public String str ="";
Advertisement
}
package com.sdz.test;
public class A {
public B b = new B();
}
Vous aurez remarqu que les classes contenues dans un package ont en toute premi re instruction la
d claration de ce package.
Maintenant que cela est fait, afin de faire le test, cr ez une classe contenant la m thode main , toujours dans le
m me package, comme ceci :
1
2
3
4
5
6
7
8
9
package com.sdz.test;
public class Main {
public static void main(String[] args){
A a = new A();
B b = new B();
//Aucun probl me ici
}
}
Ce code, bien qu'il ne fasse rien, fonctionne tr s bien : aucun probl me de compilation, entre autres. Maintenant,
faites un copier-coller de la classe ci-dessus dans le package com.sdz.test2 . Vous devriez avoir le r sultat
repr sent la figure suivante.
java
java
java
https://openclassrooms.com/courses/apprenez a programmer en java/les packages
3/6
30/12/2015
Les packages
Probl me de port e de classe
Vous pouvez constater qu'Eclipse n'aime ni l'instruction import com.sdz.test.B , ni l'instruction B b = new
B(); . Cela est d la d claration de notre classe. J'irai m me plus loin : si vous essayez de modifier la variable
Advertisement
d'instance de l'objet A , vous aurez le m me probl me. Donc, ceci : a.b.str = "toto"; n'est pas non plus
autoris dans ce package ! La seule fa on de corriger le probl me est de d clarer la classe B public . Rappelez-
vous que seule la classe A avait t d clar e ainsi.
Un package est un ensemble de dossiers et de sous-dossiers.
Le nom du package est soumis une convention de nommage.
Si vous voulez utiliser un mot cl Java dans le nom de votre package, vous devez le faire suivre d'un underscore
( _ ).
Les classes d clar es public sont visibles depuis l'ext rieur du package qui les contient.
Les classes n'ayant pas t d clar es public ne sont pas visibles depuis l'ext rieur du package qui les
contient.
Si une classe d clar e public dans son package a une variable d'un type ayant une port e default , cette
derni re ne pourra pas tre modifi e depuis l'ext rieur de son package.
9
J'ai termin ce chapitre et je passe au suivant
S
Mod liser ses objets gr ce UML
Les classes abstraites et les interfaces
T
Se d sinscrire de ce cours
Comment a marche ?
S
Java Orient Objet
T
1. Votre premi re classe
2. L'h ritage
3. Mod liser ses objets gr ce UML
4. Les packages
5. Les classes abstraites et les interfaces
6. Les exceptions
7. Les num rations
https://openclassrooms.com/courses/apprenez a programmer en java/les packages
4/6
30/12/2015
Les packages
8. Les collections d'objets
9. La g n ricit en Java
10. Les flux d'entr e/sortie
11. Java et la r flexivit
Activit : R alisez un garage
Quiz
Advertisement
Acc der au forum
Cr par
OpenClassrooms, 1 re plateforme
e-Education en Europe
$
L'auteur
Cyrille Herby
Sp cialiste en d veloppement Java et curieux insatiable dinformatique et de programmation web.
Actuellement auditeur en s curit .
D couvrez aussi ce cours en...
@ < @
Premium
Premium
eBook
Livre papier
OpenClassrooms
Professionnels
Participez
Qui sommes-nous ?
Affiliation
Cr er un cours
https://openclassrooms.com/courses/apprenez a programmer en java/les packages
5/6
30/12/2015
Les packages
Fonctionnement de nos cours
Entreprises
CourseLab
Recrutement
Nous contacter
Suivez-nous
Le blog OpenClassrooms
Universit s et coles
Aider traduire
Conditions G n rales d'Utilisation
$ 6 ;
https://openclassrooms.com/courses/apprenez a programmer en java/les packages
6/6