Vous êtes sur la page 1sur 35

Chapitre 3:

Classe et Objet

1
Raisonnement Orienté Objet

Le directeur d'une entreprise souhaite gérer les salaires de ses employés au


moyen d'un programme java.

Un employé est caractérisé par son nom, son prénom, son âge et sa date
d'entrée en service dans l'entreprise.

Cette application permet d’ajouter un nouveau employé et calculer son salaire.

2
Identification de l’Objet

Employe
L’OBJET

nom
prenom LES ATTRIBUTS
agre
dateEntree

ajouterEmploye();
LES METHODES
calculerSalaire();

3
Classe VS Objet

• Une classe n'est pas un objet. Une classe est un patron d'objet. C’est le
modèle à suivre lors de la création des instances.

Classe «Employe»

Objet 1 Objet 2 Objet 3


nom: Ahmed nom: Ali nom: Rim
prenom: Mahmoud prenom: Salah prenom: Nejah
age: 27 age: 32 age: 29
dateEntree: 28/10/2012 dateEntree: 12/12/2014 dateEntree: 03/06/2016
4
Classe VS Objet

• Classe: structure d'un objet, la déclaration de l'ensemble


des entités qui composeront un objet.

• Un objet est une instanciation d'une classe objet=instance

• Une classe est composée de deux parties:

1. Les attributs : il s'agit des données représentant l'état


de l'objet
2. Les méthodes : il s'agit des opérations applicables aux
objets

5
Déclaration d’une classe

public class Employe {


/*Déclaration des attributs*/
/*Déclaration des méthodes*/
//commentaire sur une seule ligne
/*commentaires sur
plusieurs lignes*/
}

• Le nom de la classe doit commencer par une majuscule


• Exemple: CompteBancaire, AgenceVoyage

6
Déclaration des attributs

Syntaxe:
type nom_attribut[=value];
Exemple :
int i = 0;

• Le nom de l’attribut doit commencer par une


lettre minuscule
• Exemple: nom, age, dateEntree
7
Déclaration des méthodes

Syntaxe:
Type_retour nom_methode([arguments]){}
Exemple :
void ajouterEmploye(){}

• Le nom de la méthode doit commencer par un


verbe.
8
Notion de référence

• Une référence nous permet de trouver l’objet.

• En utilisant la référence, on peut accéder aux


attributs et méthodes de l’objet.

9
Notion de référence
Mémoire
public class Test{ 0x034009
public static void main(String[] args){ E1 nom XXXXXX
Employe E1; 0x034009
prenom XXXXXX
E1=new Employe(); age XXXXXX
E1.nom=‘’Ali’’; dateEntree XXXXXX
}
} Stack Heap

 Création d’une variable E1 de type Employe


 E1 est une référence à la classe Employe
Mémoire
 Instanciation de la classe Employe = création
0x034009 de l’objet
E1 nom Ali  Cet objet possède une adresse de son
0x034009 emplacement dans la mémoire (0x034009)
prenom XXXXXX
age XXXXXX
dateEntree XXXXXX En utilisant la référence E1 on peut
accéder aux attributs de l’objet 10
Stack Heap
Notion de référence
Mémoire

0x034009
E1 nom XXXXXX
0x034009
prenom XXXXXX
public class Test{ age XXXXXX
public static void main(String[] args){ dateEntree XXXXXX
Employe E1=new Employe();
Employe E2=new Employe(); 0x99f311
} E2 nom XXXXXX
0x99f311 XXXXXX
} prenom
age XXXXXX
dateEntree XXXXXX

Stack Heap

11
Les constructeurs

• Une instance d’une classe est créée par un des


constructeurs de la classe
• Une fois qu’elle est créée, l’instance
• a son propre état interne (les valeurs des variables)

12
Les constructeurs

13
Les constructeurs

L’opérateur new fait appel au


public class Test{ constructeur de la classe
public static void main(String[] args){
Employe E1;
class Employe{
E1=new Employe();
Employe() {}
}
}
}

14
Les constructeurs
Constructeur par défaut

Employe(){}
Employe(){
nom=‘’Rim’’; Le constructeur par défaut initialise
prenom =‘’Nejah’ ’; les attributs de la classe aux valeurs
age= 29; par défaut
dateEntree = ’’03/06/2016’’;
}

Constructeur surchargé
Employe(String nom, String prenom, int age, String dateEntree){
this.nom=nom;
this.prenom = prenom;
this.age= age;
this.dateEntree = dateEntree;
}
15
Les constructeurs

Un autre exemple:
Les constructeurs

• Une classe qui déclare aucun constructeur


explicitement en possède toujours un: le
constructeur vide par défaut.
• Si l’on crée un constructeur explicite -> le
constructeur vide implicite ne sera plus créé par le
compilateur.
• Pour l’utiliser, il doit être créer explicitement

17
Les constructeurs

• La plateforme java différencie entre les différents


constructeurs déclarés au sein d’une même classe en
se basant sur le nombre des paramètres et leurs
types. On ne peut pas créer deux constructeurs ayant
le même nombre et types des paramètres.

• Le mot-clé this permet de désigner l’objet courant,


this permet d'accéder aux attributs et méthodes de
l’objet courant.

18
Les constructeurs

• si le constructeur a comme argument un nom de variable


identique à un attribut de la classe et qu’on souhaite
l'initialiser avec la variable passée en paramètre, alors on écrit
:

constructeur(int maVar)
{
this.maVar=maVar;
}

19
Méthodes

Deux types de méthodes servent à donner accès


aux variables depuis l’extérieur de la classe :
• les accesseurs en lecture pour lire les valeurs
des variables (accesseur)
• les modificateurs ou accesseurs en écriture,
pour modifier leur valeur

20
Méthodes

21
Méthodes

Les méthodes sont définies par


• le nom
• les paramètres avec leur types (optionnel)
• le type de retour
• un qualificateur (public, protected, private)
• le corps de la méthode (instructions)
Utilisation : référence. méthode(arguments)
E1. ajouterEmploye();
22
Surcharge d’une méthode

Ajouter une méthode qui a le même nom mais pas la même


signature qu’une autre méthode :
• calculerSalaire(int echelon)
• calculerSalaire(int echelon, double prime)

Il est interdit de surcharger une méthode en changeant le type


de retour.
il est interdit d'avoir ces deux méthodes dans une classe
• int calculerSalaire(int echelon)
• double calculerSalaire(int echelon)

23
Attribut local

• Déclaré dans une méthode ou un constructeur


• N’existe que localement, n’est pas visible de
l’extérieur.
• Sorti de son espace, il n’existe plus, la
mémoire correspondante est libérée.

24
Attribut d’instance

• Utilisé pour caractériser l’instance d’un objet créée


par un constructeur.
• Déclaré dans une classe, en dehors des méthodes.
• Appelé avec le nom de l’instance.

25
Attribut de classe static

• Déclaré avec le mot clé static dans une classe,


en dehors d’une méthode.
• Défini pour l’ensemble du programme et
visible depuis toutes les méthodes.
• Il n’appartient pas à une instance particulière
mais à toute la classe.

26
Attribut de classe static
Attribut de classe static
Déclaration des attributs

Tout attribut doit être déclaré avant d’être


utilisé.
Déclaration d’un attribut : On indique au
compilateur que le programme va utiliser une
variable de ce nom et de ce type.
Exemple :
• double prime;
• Employe e1;
29
Méthode de classe

• Pour désigner une méthode static depuis une


autre classe, on la préfixe par le nom de la
classe :
int n = Employe.getNbEmploye();

30
La méthode static main

La méthode main() est nécessairement static,


car :
• La méthode main() est exécutée au début du
programme.
• Aucune instance n’est donc déjà créée lorsque
la méthode main() commence son exécution.
Ça ne peut donc pas être une méthode
d’instance.

31
La méthode toString()

 La méthode toString() est définie dans la classe Object ; en


conséquence toutes les classes Java en hérite.

 La méthode toString() définie dans la classe Object renvoie le


nom de la classe de l'objet concerné suivi de l'adresse de cet
objet.

 Redéfinir la méthode toString() afin de donner plus de


description à l’objet.
La méthode toString()

 Le prototype de la méthode toString() défini dans la


classe Object est:
public String toString();

 Lors de la redéfinition, on fait en sorte que la méthode


retourne une chaine de caractère :

public String toString() {


return "l’employé " + this.nom + " : age " + this.age +
", date_entrée " + this.dateEntree;
}
La méthode toString()

public String toString() {


return "l’employé " + this.nom + " : age " + this.age +
", date_entrée " + this.dateEntree;
}

System.out.prinln(E1);

conduit à écrire à l'écran:


l’employé Ahmad : age 30, date_entrée 10/07/2021
TD 2
1. Écrire un programme qui affiche tous les nombres naturels en sens inverse de n à 1. (n à
saisir sur la console).

2. Écrire un programme qui permet de saisir un nombre entier et compter le nombre de


chiffres dans l'entier donné.

3. Écrire un programme pour saisir le nombre de jours et le convertir en années, semaines


et jours.

4. Ecrire un programme qui crée et initialise un tableau, puis . Insérez un élément à la


position spécifiée dans ce tableau (de 0 à N-1). Trouvez la fréquence de chaque élément
du tableau. Supprimez les éléments en double dans ce tableau

5. Ecrire un programme qui transforme un caractère dans une chaine de caractère par un
espace.

6. Ecrire un programme qui lit sur la ligne de commande une date écrite sous la forme
16/10/2020 et l’affiche sous la forme : 16 Octobre 2020.
35

Vous aimerez peut-être aussi