2I002
GESTION DE PROJETS PACKAGE, COMPILATION, IDE
Vincent Guigue
Introduction
Bonne architecture =beaucoup de petites classes...
... chacune étant ciblée, lisible, ré-utilisable
⇒Le répertoire de projet devient rapidement illisible !
Solution = arborescence de répertoires
Sous-répertoires associés aux concepts de bas niveaux, Sous-sous-répertoires de test
2i002 – Packages 2/6
Exemple
Gestion d’une course de voiture autonomes
1 Réfléchir à un découpage de bas niveau:
Circuit Voiture
Autonome⇒gestion de l’IA / stratégies
2 Ajouter les outils (transverses) Gestion de lagéométrie
Gestion des fichiers (sauvegardes/chargements) Interface graphique (IHM)
3 Package de test: Idée:
valider le fonctionnement de chaque objet indépendamment du reste du projet (dans la mesure du possible).
⇒ sous-répertoire de testdans chaque package principal
Exemple
Gestion d’une course de voiture autonomes
1 Réfléchir à un découpage de bas niveau:
Circuit Voiture
Autonome⇒gestion de l’IA / stratégies
2 Ajouter les outils (transverses) Gestion de lagéométrie
Gestion des fichiers (sauvegardes/chargements) Interface graphique (IHM)
3 Package de test:
Idée:
valider le fonctionnement de chaque objet indépendamment du reste du projet (dans la mesure du possible).
⇒ sous-répertoire de testdans chaque package principal
2i002 – Packages 3/6
Déclarations obligatoires
Arborescence: 1 Déclaration de paquet
1 // F i c h i e r A . j a v a 2 p a c k a g e p a q u e t 1 ; 3 p u b l i c c l a s s A { 4 . . .
2 Déclaration d’import (pour les classes de paquets différents)
1 p a c k a g e p a q u e t 2 ; 2 i m p o r t p a q u e t 1 . A ;
3 p u b l i c c l a s s ExtA e x t e n d s A{
4 p u b l i c ExtA ( ) {
5 s u p e r( ) ;
6 }
3 Sous-package
1 p a c k a g e p a q u e t 1 . s o u s p a q u e t 1 ; 2 p u b l i c c l a s s TestA {
3 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 4 // t e s t s s p e c i f i q u e s a A
4 Classe JDK
Compilation / exécution du code
Compilation (position = racine) Spécification d’un répertoire cible : -d Spécification du répertoire de gestion des sources : -cp
» javac -cp src -d bin src/paquet1/TestPaq1.java
⇒Compile l’exécutable + toutes les dépendances Exécution
Instruction pour se positionner dans le répertoire d’exécution: -cp
Chemin avec des. (pas des/)
» java -cp bin paquet1.TestPaq1
ou
» cd bin
» java paquet1.TestPaq1
2i002 – Packages 5/6
Niveaux de visibilité
introduction des packages = subtilités sur la visibilité
1 package p a q u e t 1 ;
2 p u b l i c c l a s s A {
3 p u b l i c i n t i ; // p u b l i c
4 p r o t e c t e d i n t j ; // p r o t e c t e d
5 p r i v a t e i n t k ; // p r i v a t e
6 i n t n ; // package ( n o u v e a u )
7
8 p u b l i c A ( ) {
9 i =1; j =2; k =3; n =4;
10 }
11 }
Visibilités des attributs deA depuis :
i j k n
Même répertoire B, TestPaq1 √ √
× √
Classe fille ExtA √ √
× ×