Académique Documents
Professionnel Documents
Culture Documents
WEB-Mobile.
Email : kamal.moummadi@gmail.com
www.devsasmaroc.com
Concept d’objet
Qu’est-ce qu’un objet ?
Le monde qui nous entoure est composé
d'objets
Ces objets ont tous deux caractéristiques
un état
un comportement
Concept d’objet
Exemples d’objets du monde réel
chien
état : nom, couleur, race, poids....
comportement : manger,aboyer,renifler...
Bicyclette
état : nombre de vitesses, vitesse courante,
couleur
comportement : tourner, accélérer, changer de
vitesse
L’approche objet
L’approche objet :
Programmation dirigé par les données et non par les
traitements
les procédures existent toujours mais on se concentre d’abord
Un nom
Une composante statique : des champs (ou attributs) nommés
ayant une valeur. Ils caractérisent l’état des objets pendant
l’exécution du programme
Une composante dynamique : des méthodes représentant le
comportement des objets de cette classe. Elles manipulent les
champs des objets et caractérisent les actions pouvant être
effectuées par les objets.
La classe (2) : représentation
graphique
Nom
Champs
Méthodes
Intérêt de la POO
Le code est plus sûr
• Mois • Janvier
• Année • 1944
• Mai • Novembre
• 2016 • 1975
Classes
Le Jour, le Mois et l’Année sont les
attributs d’une Date.
Jupiter Mars
• Gazeuse • Rocheuse
• 779 millions • 227936640
• 142984 • 6794
Encore un Exemple
Mohamed, 22 ans, étudiant en IVE.
groupe 1, sous-groupe 2.
Asma, étudiante en INFO, a 21 ans.
Elle est dans le sous-groupe 1 du
Groupe 2.
Rachid, un garçon de 21 ans, est en
IHE. Il est dans le groupe 3, sous-
groupe 2.
Etudiant
Ici, un étudiant se caractérise par
age
département
groupe
sous-groupe
sexe
Etudiant – 1ère possibilité
Mohamed Asma
Etudiant • 22 • 21
• Age
• IVE • INFO
• Departement
•1 •2
• Groupe Rachid
•2 •1
• SousGroupe • 21
• Garçon • Fille
• Sexe • IHE
•3
•2
• Garçon
Etudiant – 2ème possibilité
Etudiant1 Etudiant3
Etudiant • Mohamed • Asma
• Prénom
• 19 • 21
• Age
• IVE • INFO
• Departement Etudiant2
•1 •2
• Groupe • Rachid
•2 •1
• SousGroupe • 21
• Garçon • Fille
• Sexe • IHE
•3
•2
• Garçon
Définir une classe en C++
class CDate class NomClasse
{ {
typeAttribut1 nomAttribut1;
int Jour;
typeAttribut2 nomAttribut2;
int Mois; typeAttribut3 nomAttribut3;
int Annee; typeAttribut4 nomAttribut4;
}; …
};
Objet en C++
Comment créer un objet independance de
type CDate ?
La classe CDate est un type comme un
autre (int, char…)
{
CDate independance;
}
independance
Initialiser un Objet
Pour l’instant, notre objet independance
n’est pas encore le 11 Janvier 1944.
Par exemple :
s'initialiser
s'afficher
void Affiche()
{…}
Exemple
{
CDate independance;
independance.InitDate(11,01,1944);
CDate marcheverte;
marcheverte.InitDate(06,11,1975);
independance.InitDate(11,01,1944);
La date 11/01/1944 est elle contemporaine ? no
cout <<"La date ";
independance.Affiche();
cout <<" est elle contemporaine ? "
<<
independance.Contemporaine()<<endl;
marcheverte.InitDate(06,11,1975);
cout <<"La date "; La date 06/11/1975 est elle contemporaine ? no
marcheverte.Affiche();
cout <<" est elle contemporaine ? "
<<
marcheverte.Contemporaine()<<endl;
}
Initialiser un Objet – 2ème
Il existe une autre méthode pour initialiser les
attributs d'un objet :
utiliser les constructeurs.
Un constructeur est une "procédure" appelée
automatiquement qui permet de spécifier
chacun des attributs de l’objet en fonction de
ses paramètres.
Un constructeur ne possède aucun type de
retour, même pas void.
Constructeur par défaut
class CDate
{
int Jour ;
int Mois ;
int Annee ;
CDate()
{/* constructeur par défaut qui initialise
l'objet date au 05 Mai 2016 */
Jour = 5; Mois = 5; Annee = 2016;
}
};
Créer mon objet
{
CDate uneDate;
private:
protected:
public:
Tous les attributs ou fonctions situés
sous le mot clé public: sont accessibles
en dehors de l’objet ou depuis
n'importe quelles fonctions de la classe.
int GetMois()
{
return Mois;
}
Accesseur en écriture
Un accesseur en écriture est une
procédure de la classe permettant de
modifier le contenu d'un de ses
attributs.
void SetMois(int mois)
{
Mois = mois;
}
Protéger les attributs de la
classe CDate
class CDate void SetMois(int mois)
{ {
private: if( mois < 1 || mois >= 12 )
int Jour; mois=1;
int Mois; Mois=mois;
int Année; }
public:
int GetMois() int GetJour(){ … }
{ void SetJour(int jour ) { … }
return Mois;
} int GetAnnee() { … }
void SetAnnee(int annee){ … }
};
Reprenons notre exemple
Essayons de définir la date 38/14/-362 ?
{
CDate dateImpossible;
dateImpossible.SetJour(38); // Jour = 1
dateImpossible.SetMois(14); // Mois = 1
dateImpossible.SetAnnee(-362); // Annee = 2016
dateImpossible.Affiche(); // 01/01/2016
}