Académique Documents
Professionnel Documents
Culture Documents
Programme
Partie I: Les concepts de base de la POO
o Classes et objets o Hritage o Polymorphisme
14/09/2011
Rfrences
1. Claude Delannoy, Programmer en Java, Java 5 et 6; Editeur : Eyrolles, Code:PT 372 2. H.M. Fourati, I. M. Kessentini, Les bases du langage Java, Centre de publication universitaire, code: PT173 3. Souheib Baarir, Introduction Java, 4. http://pagesperso systeme.lip6.fr/Souheib.Baarir/Cjava/cours/02-Bases_java/02Bases_java.pdf 5. Mickal BARON, Programmation Oriente Objet application au langage Java, http://mbaron.ftp-developpez.com/javase/java.pdf 6. Irne Charon, Apprendre Java, http://www.infres.enst.fr/~charon/coursJava/
14/09/2011
Quest-ce-que la modlisation objet? - Pour un problme rsoudre cest chercher quels objets pourraient nous aider dans notre tche.
Qu'est ce quun Programme Oriente Objet ? Ensemble d'objets autonomes et responsables qui s'entraident pour rsoudre un problme final en s'envoyant des messages
Objet 1
Message
Objet 3 Objet 2
14/09/2011
Quest ce quun objet ? Objet = Donnes ( attributs membres) + Mthodes (Fonctions Membres)
Fonction 1 Fonction 2
Fonction 6
DONNEES
Fonction 3
Fonction 5
Fonction 4
14/09/2011
Activit: dfinir les objets formant une sance de cours. Dfinir dautres exemples
14/09/2011
14/09/2011
Autre dfinition
class Point { public: //partie publique de la classe void SetX(const unsigned x); // les mthodes void SetY(const unsigned y); void SetXY(const unsigned x,const unsigned y); unsigned GetX() const; unsigned GetY() const; float Distance(const Point & p) const; void Translate(const unsigned x,const unsigned y); void Display(std::ostream & flot) const; private: // partie prive (encapsule) unsigned _x; // les attributs unsigned _y;
};
void Point::SetY(const unsigned int y) { _y=y; } void Point::SetXY(const unsigned int x,const unsigned int y) { _x=x; _y=y; } unsigned Point::GetX() const{ return _x; }
14/09/2011
Les instances dune classe (les objets) Une classe est un moule (ou presque) On peut crer autant dobjets que ncessaire partir du moule Toute classe permet den crer une ou des instance(s)
Cas du C++
void main() { Point p1,p2; // p1 et p2 sont deux objets de la classe Point p1.SetXY(10,10); // donne ltat (10,10) lobjet p1 p2.SetXY(20,20); // donne ltat (20,20) lobjet p2 cout << "Distance p1 - p2 :" ; cout << p1.Distance(p2) << endl; //affiche la distance p1-p2 // p1._x=12 ; est interdit par le compilateur, les donnes sont prives }
14/09/2011
Les membres dun objet Ce sont ses attributs et ses mthodes. Les attributs peuvent tre des variables ou des objets dautres classes
Il existe 4 catgories de mthodes: Les Constructeurs Le Destructeur Les Accesseurs/slecteurs Les Modificateurs
14/09/2011
Les Constructeurs
Permettent dinitialiser lobjets lors de sa cration
copie des arguments vers les donnes membres initialisation de variables dynamiques la cration de lobjet
Sont appels de manire automatique la cration de lobjet Peuvent tre surchargsOn peut en dfinir plusieurs de mme nom mais acceptant des arguments diffrents Possdent le mme nom que la classe n'indiquent pas de type de retour, ne contiennent pas d'instruction return.
10
14/09/2011
Le Destructeur
Il est unique Est appel automatiquement lors de la destruction de lobjet Sert gnralement liminer les variables dynamiques de lobjet (cres en gnral par le constructeur) Il a pour nom le nom de la classe prcd du symbole ~
... };
11
14/09/2011
Les Accesseur/Slecteurs Les slecteurs : celles qui retournent ltat de lobjet Les accesseurs : celles qui utilisent ltat (les donnes) en lecture Les Modificateurs Permettent de modifier ltat des donnes internes de lobjet
void Point::SetY(const unsigned int y) { _y=y; } void Point::SetXY(const unsigned int x,const unsigned int y) { _x=x; _y=y; } unsigned Point::GetX() const{ return _x; }
12
14/09/2011
Mabouteille.GetContenance();
MabouteilleGetContenance();
13
14/09/2011
Qui peut lire/utiliser ou modifier les donnes dun objets? Qui peut appeler les mthodes dun objet?
Ces options sont fixes au moment de la dfinition de la classe. Cest la notion de daccessibilit (ou visibilit).
14
14/09/2011
Lhritage
Permet de dfinir les bases dun nouvel objet partir dun objet existant Le nouvel objet hrite des proprits de lanctre et peut recevoir de nouvelles fonctionnalits
Avantages
Meilleures rutilisations des ralisations antrieures parfaitement au point
15
14/09/2011
16
14/09/2011
Type d'hritage
Rgles de drivation de classe
protected
public
Le polymorphisme
Un langage est dit polymorphique, sil offre la possibilit de pouvoir percevoir un objet en tant quinstance de classes varies, selon les besoins
Permet de manipuler des objets sans vraiment connatre leur type
17