– Notion d’objets et de classes
1 – 1 Exemple d’une classe prédéfinie : classe String
Le but de la programmation orienté objet est de facilité la programmation en créant des classes qui à travers auxquelles on crée un nouveau objet chaque fois qu’on a besoin à l’aide de ce qu’on appelle l’instanciation.
Exemple
String myString=new String(" salut ");
Ici on crée un objet du type chaine de caractère nommé myString à l’aide du modèle String la méthode par laquelle on a crée l’objet : Objet monObjet=new Objet est appelé l’instanciation
Un objet est doté des propriétés et méthodes qui fournissent des informations sur l’objet.
Exemple :
myString.length() ;
qui fournit ici la longueur (length en anglais ) de la chaine de caractères myString= “salut” qui est égale ici à 5.
Pour créer une classe en Java on utilise la syntaxe :
classe nom_classe{
//code de la classe ici
}
2 – Les classes et les objets Java
2 – 1 Déclaration d’une classe Java
Pour bien faciliter l’apprentissage nous allons traiter un exemple simple d’une classe permettant de générer des objets voitures ayant tous la même marque et le même prix :
Exemple
class voiture{
String marque ;
double prix ;
}
2 – 2 Constructeur sans paramètres ( constructeur par défaut )
Afin de pouvoir créer des objets pour une classe Java, il faut associer à cette dernière une méthode (fonction)qui porte le même nom que la classe appelé constructeur :
voiture(){
}
Nous pouvons aussi attribuer des valeurs aux variables marque et prix :
class voiture {
String marque="Renault";
double prix=20000;
voiture(){
}
Et maintenant pour créer un objet voiture il suffit de faire l’instanciation : par exemple si on veut créer un objet voiture nommé maVoiture on utilise le code :
voiture maVoiture = new voiture();
L’objet maVoiture qu’on vient de créer est une voiture de marque Renault et de prix 20000 ( Euro )
Et maintenant si on veut accéder à la marque de l’objet maVoiture et de la récupérer sur une variable String on utilise le code :
String marque = maVoiture.marque ;
Voici le code final de la classe voiture :
class voiture {
String marque="Renault";
double prix=20000;
voiture(){
}
public static void main(String[] args) {
voiture maVoiture=new voiture();
System.out.println("La marque de maVoiture est : "+ maVoiture.marque);
System.out.println("Le prix de maVoiture est : "+ maVoiture.prix + " Euro");
}
}
Ce qui affiche à l’exécution :
La marque de maVoiture est : Renault
Le prix de maVoiture est : 20000.0 Euro
2 – 3 Constructeur avec paramètres
On peut aussi donner la possibilité à l’utilisateur de choisir lui même la marque et le prix de la voiture en ajoutant des paramètres au constructeur :
voiture ( String mq , double pr ) {
this.marque=mq ;
this.prix=pr ;
}
Et maintenant l’utilisateur du modèle voiture est libre de choisir la marque qu’il souhaite avec le prix qui qui lui convient au moment de l’instanciation , par exemple s’il souhaite créer une voiture de marque Peugeot et de prix 25000 Euro il n’a qu’à instancier avec ces paramètres :
voiture saVoiture=new voiture( "Peugeot" , 25000 ) ;
Voici le code final de la classe :
class voiture {
String marque;
double prix;
voiture(String mq,double pr){
this.marque=mq;
this.prix=pr;
}
public static void main(String[] args) {
voiture saVoiture=new voiture("Peugeot",25000);
System.out.println("La marque de saVoiture est : "+ saVoiture.marque);
System.out.println("Le prix de saVoiture est : "+ saVoiture.prix + " Euro");
}
}
Ce qui affiche à l’exécution :
La marque de saVoiture est : Peugeot
Le prix de saVoiture est : 25000.0 Euro
3 – Modificateurs d’accès
Vous auriez sûrement déjà remarqué les mots public, protected et private au début des déclarations des méthodes de classe. Ces mots-clés sont appelés les modificateurs d’accès dans la syntaxe du langage Java, et ils définissent la portée d’un constituant de la classe.
3 – 1 – Cas d’une classe
- Si une classe a une visibilité public (publique), la classe peut être appelée depuis n’importe où dans le programme.
- Si une classe possède une visibilité du package, la classe ne peut être appelée que dans le package où la classe est définie.
- Si une classe a une visibilité private (privée) (elle ne peut se produire que si la classe est définie imbriquée dans une autre classe), la classe ne peut être consultée que dans la classe externe.
3 – 2 – Cas d’un attribut
- Si une variable est définie dans une classe publique et qu’elle a une visibilité publique, la variable peut être appelée n’importe où dans l’application par la classe dans laquelle elle est définie.
- Si une variable a une visibilité protected (protégée) , la variable ne peut être appelée que dans les sous-classes et dans le même paquet dans la classe dans laquelle elle est définie.
- Si une variable a une visibilité du package , la variable ne peut être référencée que dans le même paquet dans la classe dans laquelle elle est définie.
- Si une variable a une visibilité private (privée), la variable ne peut être accessible que dans la classe dans laquelle elle est définie.
3 – 3 – Cas d’une méthode Java
- Si une méthode est définie dans une classe publique et qu’elle a une visibilité publique, la méthode peut être appelée n’importe où dans l’application à travers la classe dans laquelle elle est définie.
- Si une méthode est déclarée protected elle a une visibilité protégé, la méthode peut être appelée uniquement dans les sous-classes et dans le même paquetage à travers la classe dans laquelle elle est définie.
- Si une méthode est déclarée private elle a une visibilité privée, la méthode peut être appelée uniquement dans la classe dans laquelle elle est définie.
3 – 4 – Le modificateur abstract
Le modificateur abstract est utilisé devant les classes Java pour définir les classes abstraites ( les classes abstraite sont des classes non instanciables et par suite non exécutables directement, elle ne peuvent être utiliser qu’en héritage )
3 – 5 – Le modificateur Final
- En Java le mot clé final s’il est ajouté devant un attribut, il le rend non modifiable, il prend toujours la valeur par laquelle il est initialisé.
- Le mot clé final s’il est ajouté devant une méthode, il indique que cette dernière ne peut pas être modifiée pendant l’héritage. Les méthodes static et private sont considérées automatiquement final.
- Le mot clé final s’il est ajouté devant une classe, il indique que cette dernière ne peut pas avoir de classes filles.
3 – 6 – – Le modificateur Static
Pour un attribut ou une méthode Java, le modificateur static indique, que la méthode ou l’attribut peut être appelé sans faire une instanciation sur sa classe.