I. Quelques rappels▲
Quelques renvois ici pour expliquer certains fondamentaux que je ne traiterai pas dans cet article :
- POO : Programmation Orientée Objet ;
- Comment compiler et exécuter mon application Java ?
À noter que pour cet article, JDK 1.5 ( 5.0 ou TIGER ) doit être installé et fonctionner.
II. Premier pas▲
Commençons par créer une classe la plus simple qui soit, en créant le fichier MoyenDeTransport.java (veiller à bien respecter la casse) dans un répertoire de travail D:\data\workspace\learningjava1, et pour la suite de l'article nous nommerons ce répertoire %WORK%
Puis ajouter le code suivant dans le fichier :
public class MoyenDeTransport {
}Ensuite compiler le fichier en vous plaçant dans %WORK% :
javac MoyenDeTransport.javaLe résultat de la compilation est un fichier compilé nommé MoyenDeTransport.class généré dans le répertoire %WORK% et représentant une classe JAVA nommée MoyenDeTransport.
III. Constructeur(s) de classe▲
Un constructeur est une méthode particulière dans une classe, le constructeur porte le même nom que la classe, et permet de créer une instance de cette classe (allocation mémoire).
Une classe peut avoir plusieurs constructeurs, qui seront différenciés par leurs paramètres.
Un constructeur vide existe toujours dans une classe, ainsi dans l'exemple précédent ce constructeur implicite n'est pas présent dans le code, mais existe pour créer une instance de la classe.
Un constructeur sert également à initialiser des propriétés/comportements dans une classe (nous aborderons ce point plus loin).
Ajoutons maintenant le code suivant et compilons :
public class MoyenDeTransport {
// "Le" constructeur vide , implicite en JAVA.
public MoyenDeTransport() {
System.out.println("Constructeur vide");
}
// Un 2e constructeur avec 1 paramètre
public MoyenDeTransport(String pname) {
System.out.println("Constructeur avec 1 paramètre");
}
// Un 3e constructeur avec 2 paramètres
public MoyenDeTransport(String pname, String ptype) {
System.out.println("Constructeur avec 2 paramètres");
}
}Créons maintenant une classe de test pour utiliser notre classe MoyenDeTransport :
public class Test {
// La méthode Main :
// C'est une méthode spéciale, elle est utilisée lors de
// l'exécution de la classe par la commande : java Test
public static void main(String[] args) {
// On crée ici 3 instances de la classe MoyenDeTransport
MoyenDeTransport vehicule1 = new MoyenDeTransport();
MoyenDeTransport vehicule2 = new MoyenDeTransport("MERCEDES");
MoyenDeTransport vehicule3 = new MoyenDeTransport("CESNA","Avion");
}
}Compiler cette classe de test en veillant bien à indiquer le CLASSPATH, car nous dépendons maintenant d'une autre classe (si vous suivez bien, le ./ permet d'indiquer le répertoire courant pour trouver MoyenDeTransport) :
javac -classpath ./ Test.javaExécuter la classe, le résultat doit être le suivant :
D:\data\workspace\learningjava1>java -classpath ./ Test
Constructeur vide
Constructeur avec 1 paramètre
Constructeur avec 2 paramètresIV. Les propriétés dans une classe et notion d'encapsulation▲
Ajoutons maintenant 2 propriétés name et type à notre classe MoyenDeTransport et des méthodes pour modifier et récupérer ses propriétés (c'est ce qu'on appelle l'encapsulation).
public class MoyenDeTransport {
private String name;
private String type;
// "Le" constructeur vide , implicite en JAVA.
public MoyenDeTransport() {
System.out.println("Constructeur vide");
}
// Un 2e constructeur avec 1 paramètre
public MoyenDeTransport(String pname) {
System.out.println("Constructeur avec 1 paramètre");
}
// Un 3e constructeur avec 2 paramètres
public MoyenDeTransport(String pname, String ptype) {
System.out.println("Constructeur avec 2 paramètres");
}
// Les accesseurs (getter ou setter) permettent de modifier ou récupérer les attributs d'une classe
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}Puis ajoutons un peu de code à notre classe Test pour voir le résultat :
public class Test {
// La méthode Main :
// C'est une méthode spéciale, elle est utilisée lors de
// l'exécution de la classe par la commande : java Test
public static void main(String[] args) {
// On crée ici 3 instances de la classe MoyenDeTransport
MoyenDeTransport vehicule1 = new MoyenDeTransport();
MoyenDeTransport vehicule2 = new MoyenDeTransport("MERCEDES");
MoyenDeTransport vehicule3 = new MoyenDeTransport("CESNA","Avion");
// On affecte ici "RENAULT" à la propriété name de l'instance vehicule1
vehicule1.setName("RENAULT");
System.out.println(vehicule1.getName());
System.out.println(vehicule2.getName());
System.out.println(vehicule3.getType());
}
}Recompiler la classe MoyenDeTransport.java et Test.java et exécuter la classe Test, le résultat doit être :
D:\data\workspace\learningjava1>java -classpath ./ Test
Constructeur vide
Constructeur avec 1 paramètre
Constructeur avec 2 paramètres
RENAULT
null
nullOn remarque ici l'affichage de 2 valeurs nulles, car pour vehicule2 et vehicule3 ni le name, ni le type n'ont été renseignés.
Voyons comment les initialiser en utilisant les constructeurs de la classe MoyenDeTransport :
public class MoyenDeTransport {
private String name;
private String type;
// "Le" constructeur vide , implicite en JAVA.
public MoyenDeTransport() {
// this(0...N paramètres) , permet d'invoquer le constructeur selon son nombre de paramètres
this("default");
}
// Un 2e constructeur avec 1 paramètre
public MoyenDeTransport(String pname) {
this(pname, "default");
}
// Un 3e constructeur avec 2 paramètres
public MoyenDeTransport(String pname, String ptype) {
// this : une référence sur l'objet courant
this.name = pname;
this.type = ptype;
}
// Les accesseurs (getter ou setter) permettent de modifier ou récupérer les attributs d'une classe
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}Recompiler la classe MoyenDeTransport.java et exécuter la classe Test
D:\data\workspace\learningjava1>javac -classpath ./ MoyenDeTransport.java
D:\data\workspace\learningjava1>java -classpath ./ Test
RENAULT
MERCEDES
AvionV. Conclusion▲
Cet article en construction va évoluer pour essayer d'aborder les bases de la programmation objet en JAVA.
À venir…L'héritage…Les bienfaits de l'abstraction.





