Structure d’un projet et paquets
Quelques remarques
Nommage des paquets :
▶Les noms de paquets sont écrits en minuscules
▶Pour éviter les collisions, on utilise le nom du domaine à l’envers
⇒com.google.gson,com.oracle.jdbc
▶Si le nom n’est pas valide, on utilise des underscores :
⇒com.univ_amu,com.example._123name
Fichier JAR (Java Archive) :
▶est une archive ZIP pour distribuer un ensemble de classes Java
▶contient un manifest (qui peut préciser la classe qui contient le main)
▶peut également faire partie du ClassPath
▶peut être généré en ligne de commande (jar) ou avec un IDE
Bertrand Estellon (DII – AMU) Prog. et Conception Orientées Objet 17 novembre 2016 99 / 466
Structure d’un projet et paquets
Accessibilité : modicateur public
Une classe ou un membre est accessible :
▶de n’importe où s’il est précédé du modicateur public ;
▶des classes de son paquet si rien n’est précisé.
public class MyClass {
public int myPublicField;
int myPackageField;
public void doPublicAction() { }
void doPackageAction() { }
}
Rappels :
▶Seules les classes publiques sont utilisable à partir d’un autre paquet
▶Un chier ne peut contenir qu’une seule classe publique
Bertrand Estellon (DII – AMU) Prog. et Conception Orientées Objet 17 novembre 2016 100 / 466
Structure d’un projet et paquets
Accessibilité : modicateur private
Une membre est accessible :
▶de n’importe où s’il est précédé du modicateur public ;
▶des classes de son paquet si rien n’est précisé ;
▶des méthodes de la classe s’il est précédé de private ;
public class MyClass {
private int privateField;
private void doPrivateAction() { }
}
An de limiter les conséquences d’une modication :
▶Les méthodes ou propriétés dénies an pour rendre lisible
l’implémentation des fonctionnalités doivent être privées ;
▶Seule l’interface de la classe doit être publique.
Bertrand Estellon (DII – AMU) Prog. et Conception Orientées Objet 17 novembre 2016 101 / 466
Structure d’un projet et paquets
Getters et Setters
public class Time {
private int hour,minute;
public Time(int hour,int minute) {setTime(hour,minute);}
public void setTime(int hour,int minute) {
assert hour >= 0 && hour<=23;
assert minute >= 0 && minute<=59;
this.hour =hour;this.minute =minute;
}
public int getHour() { return hour; }
public int getMinute() { return minute; }
}
Bertrand Estellon (DII – AMU) Prog. et Conception Orientées Objet 17 novembre 2016 102 / 466