SlideShare une entreprise Scribd logo
1  sur  35
LA PROGRAMMATION ORIENTEE OBJET
[object Object],[object Object],PLAN DU RAPPORT
I  : l’Approche  Orientée Objet
LES QUALITES D’UN LOGICIEL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LA PROGRAMMATION FONCTIONNELLE ,[object Object],Logiciel de gestion   de   bibliothèque ces tâches indépendantes s’appellent des  fonctions  ou  sous-programmes.
LA PROGRAMMATION FONCTIONNELLE ,[object Object],[object Object],[object Object],[object Object],Réutilisation de fonctions
LA PROGRAMMATION FONCTIONNELLE ,[object Object],[object Object],[object Object]
LIMITES DE LA LA PROGRAMMATION FONCTIONNELLE Maintenance complexe  : avec la factorisation des comportements, les fonctions sont devenues interdépendantes. Une simple mise à jour du logiciel à un point donné, peut entraîner , en cascade, la modification d’une multitude d’autres fonctions. En cas d’évolution majeure du logiciel (passer, par exemple, de la gestion d’une bibliothèque à celle d’un médiathèque, l’écriture du logiciel devient plus complexe. Même si la structure générale du logiciel reste valide, la multiplication des points de maintenance, engendrée par le chaînage des fonctions, rend l’adaptation très laborieuse. Il faut retoucher le logiciel dans sa globalité.  L'approche fonctionnelle n'est pas adaptée au développement d'applications qui évoluent sans cesse et dont la complexité croit continuellement (plusieurs dizaines de milliers de lignes de code).
L’APPROCHE ORIENTEE OBJET L’approche orientée   La nécessité impérative d’une information de  bonne qualité ,  l’explosion de besoins  nouveaux découlant de l’ouverture des Systèmes d’Informations (SI) ne laissent d’autres choix que de rechercher de nouvelles méthodes, beaucoup plus efficaces,  pour la prise en charge des applications.  L’approche orientée objet  est aujourd’hui l’une des pierres angulaires de l’évolution à laquelle l’entreprise est contrainte. Elle conduit tout naturellement à une vision différente de la vision procédurale (fonctionnelle) et plus proche de la réalité des métiers. L’approche orientée objet  a pour origine la programmation à objets dont les langages  Smalltalk  et  C++  sont les représentants. Elle a obtenu ses premiers succès importants avec la programmation d’interfaces graphiques. Depuis, son application s’est généralisée à de nombreux domaines dont le génie logiciel, les systèmes repartis et les bases de données. L’approche orientée objet  apporte des avantages décisifs comme la  modularité , la  réutilisabilité  et l’ extensibilité  du code qui conduisent à une meilleur productivité des développeurs et à une plus grande qualité des applications.
II  :  Concepts de la Programmation Orientée Objet
LA PROGRAMMATION ORIENTEE OBJET (POO) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OBJETS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OBJETS méthode : Une méthode est une fonction ou un traitement qui manipule des attributs. Une méthode est liée à un  objet ,  elle est déclenchée à la réception d’un message particulier  : la méthode déclenchée correspond strictement au message reçu. Exemple d’une entité logicielle Pour calculer la somme des n premiers entiers, il est possible de concevoir une entité logicielle appelée SommeN dont le fonctionnement revient à interpréter certains messages que l’on pourra lui envoyer (voir figure) Une telle entité, du point de vue de l’utilisateur, est une boîte noire qui réagit seulement à la réception de message. Entité , qui sait calculer la somme des N premiers entiers et l’afficher SommeN   Messages initialiseToi faisSomme pour N précisé afficheSomme
OBJETS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OBJETS La liste des méthodes constitue l’ interface  de l’ objet  pour l’utilisation : ce sont les messages que l’ objet  peut comprendre si on les lui envoie, et dont la réception déclenche les méthodes correspondantes.  Signature  :  La  précision  d’une méthode (nom de la méthode), du  type de ses arguments  et du  type de donnée retournée  s’appelle  signature de méthode . Exemple :    int   additionEntier ( int  a,  int  b) Représentation de l’objet  SommeN  : vision programmeur Type de retour Précision de la méthode Type des paramètres Objet  SommeN Attributs   I,S : Entier N : Entier Méthodes initialiseToi  () retourne vide faisSomme (Entier)  retourne vide afficheSomme ()  retourne vide
OBJETS Encapsulation  :  On dit qu’un  objet , qui réunit dans une même entité  attributs  et  méthodes , les  encapsule . Les détails de l’implémentation de l’ objet  sont masqués aux autres  objets  du système à  objets . On dit qu’il y’a  encapsulation des données et du comportement des objets. L’encapsulation applique le principe d’ abstraction  : un  objet  n’est  accessible  que par ses  opérations visibles  (son  interfaces externe ). Ainsi  les modifications de données restent locales aux  objets  et sont sans effet sur les programmes utilisateurs. L’encapsulation apporte alors indépendance entre  programmes ,  opérations  et  données . Modularité  :  La modularité d’un logiciel consiste à regrouper des  classes  qui participent à la réalisation d’un service ou d’une fonctionnalité donnée au sein d’un même  package  (ou  module ).
CLASSES Définition  :  Une classe est un ensembles d’objets qui ont en commun les mêmes méthodes et qui partagent les mêmes types d’attributs. Une classe est en sorte un type abstrait qui encapsule données et comportements. C’est une sorte de « moule », qui permet ensuite de créer autant d’instances que l’on veut, et ces instances seront des objets instances de la classe, auxquels on pourra effectivement envoyer des messages, qui activeront les méthodes correspondantes. Instance  : Une  instance  d’une  classe  est un  objet  particulier d’une  classe  qui peut activer les méthodes de la classe et qui a des valeurs particulières pour ses attributs.  Classe Attributs   Méthodes Une instance de la classe Une autre instance de la classe Encore une instance de la classe Une classe et trois de ses instances
CLASSES Exemple de classe Comme exemple, nous allons définir une classe représentant les caractères d’une personne. La déclaration de la classe  Personne  revient à définir son nom, son adresse et son âge et à préciser comment on accède à ces informations. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Chéma de da la classe Personne
CLASSES ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Personne1 nom : Bangoura  adresse : ville âge : 35 Personne2 nom : Keita adresse : campagne âge : 25 Deux instances de  Personne
CLASSES ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CLASSES Invocation d’une méthode   Il reste enfin à préciser comment on invoque une méthode sur un objet. Cela se fait par l’application, sur l’identificateur de l’objet, du nom de la méthode à l’aide d’un opérateur, l’opérateur «  .  » L’appel d’une méthode sur un objet receveur est alors le suivant : instance_de_classe . méthode (); Utilisation de la classe Personne Il est maintenant possible d’utiliser la classe Personne, puisque celle-ci est déclarée et que ses méthodes ont été écrites. Il a même été possible de définir la classe dans un algorithme dont le rôle se limitait strictement à cela. Un autre algorithme va en permettre l’utilisation. Un mot-clé permet de préciser qu’elle classe est utilisée dans ce nouvel algorithme et ainsi d’identifier les méthodes employées. Ce mot-clé, placé au tout début de l’algorithme, est  utlise . utilise  Nom_de_classe;
CLASSES Algorithme : déclaration de Peronne class  Personne debut privé // les attributs suivants ne sont pas accessibles de l’extérieur de la classe nom, adresse : chaîne de caractères; âge : Entier;  public   // les méthodes seront déclarées publiques, accessibles de l’extérieur initialiser (x : chaîne de caractères, y : chaîne de caractères, z : entier) retourne vide debut non    x; adresse    y; âge    z; fin
CLASSES catégorieDâge ()  retourne vide debut si (âge > 50) alors   écrire (‘’Personne agée’’);   sinon   si (âge < 20) alors    écrire (‘’Personne jeune ’’); sinon écrire (‘’Age moyen’’); fin catégorieDeResidence ()  retourne vide debut si (adresse = ‘’Ville’’) alors   écrire (‘’Habitant urbain’’); sinon si (adresse =‘’Village’’) alors   écrire (‘’Villageois’’); sinon écrire (‘’Habitant rural’’); fin fin
CLASSES utilise   Personne ;   //on connaît ainsi la classe Personne et ses attributs class  ManipulationDePersonne variables  : personne1, personne2, personne3 : Personne  // déclaration de trois objets instances de la classe Personne  debut personne1    new Personne ();   // création effective d’un objet personne2    new Personne ();   // création effective d’un autre objet personne3    new Personne ();   // création du troisième objet personne1.initialiser (‘’Bemba’’, ’’ville’’,35); personne2.initialiser (‘’Loemba’’, ’’campagn2’’,35); personne1.categorieDâge (); personne1.categorieDeResidence (); fin
CLASSES ,[object Object],[object Object],[object Object],[object Object],Les constructeurs  :  Un  constructeur  est une  méthode particulière  d’une classe permettant d’initialiser les attributs d’un objet lors de sa création effective.  Elle porte le même nom que la classe et ne retourne pas de valeur. Exemple 1 classe  Nama début   ……   public   Nama  () ; // signature du constructeur sans arguments   fin …… fin
CLASSES Les constructeurs  :  Exemple 2 classe  Toto debut   ……   public   Toto  (x : Entier, y : Entier) ;  // signature du constructeur avec arguments   fin …… fin La classe  Personne,  de l’exemple précédent, peut implémenter le constructeur suivant : Personne  ( x  : chaîne de caractères,  y  : chaîne de caractères,  z  : Entier) retourne vide Si nous reprenons l’algorithme de la classe Personne comportant cette fois-ci un constructeur, nous aurons :
CLASSES Algorithme : déclaration de  Personne  avec un constructeur class  Personne debut privé // les attributs suivants ne sont pas accessibles de l’extérieur de la classe nom, adresse : chaîne de caractères; âge : Entier;  public   // les méthodes seront déclarées publiques, accessibles de l’extérieur Personne (x : chaîne de caractères, y : chaîne de caractères, z : entier) retourne vide debut non    x; adresse    y; âge    z; fin
CLASSES catégorieDâge ()  retourne vide debut si (âge > 50) alors   écrire (‘’Personne agée’’);   sinon   si (âge < 20) alors    écrire (‘’Personne jeune ’’); sinon écrire (‘’Age moyen’’); fin catégorieDeResidence ()  retourne vide debut si (adresse = ‘’Ville’’) alors   écrire (‘’Habitant urbain’’); sinon si (adresse =‘’Village’’) alors   écrire (‘’Villageois’’); sinon écrire (‘’Habitant rural’’); fin fin
CLASSES utilise   Personne ;   //on connaît ainsi la classe Personne et ses attributs class  ManipulationDePersonne variables  : personne1, personne2, personne3 : Personne  // déclaration de trois objets instances de la classe Personne  debut personne1    new Personne (‘’Bemba’’, ’’ville’’,35);   // création et initialisation des attributs par le    // constructeur personne2    new Personne (‘’Loemba’’, ’’Village’’,35);  // création effective d’un autre objet personne1.categorieDâge (); personne1.categorieDeResidence (); personne2.categorieDâge (); personne2.categorieDeResidence (); fin
L’HERITAGE Le concet d’héritage est central dans l’approche objet. Il est en effet très rare de concevoir un système dans lequel il n’existe pas de classes liées par héritage Définition   : Une classe peut être considérée comme héritant d’une autre si elle peut activer toutes les méthodes de cette dernière et si elle contient également tous ses attributs. Graphe d’héritage Le graphe d’héritage d’un ensemble de classes est la structure représentant la manière dont les classes sont liées les unes aux autres par héritage. Ce graphe constitue une hiérarchie. Exemple  La classe  Quadrupède  est une classe générale. Elle se spécialise en deux sous-classes indépendantes et de même niveau de spécialisation, la classe  Chien  et la classe  Cheval .
L’HERITAGE Toutes les propriétés de la classe quadrupède, et en particulier le fait d’avoir quatre pattes, sont automatiquement portées dans ces deux sous-classes. La classe Chien précise que l’animal pratique l’aboiement alors que la classe Cheval précise que l’animal est utilisé pour travailler dans des exploitations agricoles. Quadrupède  Cheval  Chien  Une hiérarchie de trois classes
L’HERITAGE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Schéma du graphe d’héritage
L’HERITAGE Dans l’exemple précédent, un objet instance de la classe  Chien  peut se voir appliquer la méthode  nombreDePattes (),  qui retournera vraisemblablement quatre, car cette classe hérite de la classe  Quadrupède  et  peut donc utiliser toutes ses méthodes . Les méthodes  nombreDePattes (),   decritType ()  ,  decritSite ()  s’appliquent donc à des objets de type Quadrupède, Chien et Cheval. Par contre, il est impossible d’appliquer la méthode  sonPropriétaire ()  à un objet instance de  Quadrupède  ou instance de  Cheval  car la méthode est spécifique à la classe Chien. Définition des classes de l’héritage classe  A   spécialise   B // A hérite de B { privé  // zone de définition des éléments privés ……… public // zone de définition des éléments publics …… .. }
POLYMORPHISME Les méthodes sont attachées aux classes et précisent leur comportement.  Il sera possible de donner à des méthodes de classes différentes le même identificateur. Cette propriété, qui revient à définir  un même identificateur   pour désigner plusieurs méthodes de plusieurs classes , s’appelle  polymorphisme . Ainsi, la méthode déclenchée dépendra de l’objet receveur et ne pourra pas être attribuée a priori à une classe. Nous avons déjà utilisé ce concept dans l’exemple précédent. L’identificateur de méthodes  sonNom()  correspond soit à une méthode de la classe  Chien , soit à la méthode de la classe  Cheva l, qui à priori, ne sont pas les mêmes.  C’est seulement lorsque le receveur sera connu, que la bonne méthode sera déclenchée.
SURCHARE ET REDEFINION DE METHODE Surcharge de méthode  : Il peut arriver que l’on définisse plusieurs fois une même méthode pour une même classe, en gardant donc le même identificateur, mais en changeant le type ou le nombre des paramètres des méthodes récrites. Sinon, il y aurait ambiguïté dans l’appel des méthodes, puisqu’elles auraient la même signature. On dit que l’on  surcharge  la méthode. Ce cas de définition de méthodes ayant le même identificateur sera fréquente pour les constructeurs. Redéfinition de méthode Il peut arriver que l’on souhaite redéfinir dans une  classe dérivée  une méthode de la  classe mère . On dit, dans ce cas, que l’on  redéfinit  la méthode, qui est déjà opérante dans la classe fille par héritage, par une méthode locale qui va la masquer.

Contenu connexe

Tendances

POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationMouna Torjmen
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zinebZineb ELGARRAI
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UMLAmir Souissi
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismeMouna Torjmen
 
POO Java Chapitre 6 Exceptions
POO Java  Chapitre 6 ExceptionsPOO Java  Chapitre 6 Exceptions
POO Java Chapitre 6 ExceptionsMouna Torjmen
 
Chapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En JavaChapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En JavaAziz Darouichi
 
Systèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireSystèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireLilia Sfaxi
 
Introduction a la compilation Analyse lexicale - C2
Introduction a la compilation  Analyse lexicale - C2Introduction a la compilation  Analyse lexicale - C2
Introduction a la compilation Analyse lexicale - C2Beligh HAMDI
 
Les intents sous Android
Les intents sous Android Les intents sous Android
Les intents sous Android Houssem Lahiani
 
Android-Tp3: fragments et menus
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menusLilia Sfaxi
 
Chp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOAChp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOALilia Sfaxi
 

Tendances (20)

Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 Encapsulation
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zineb
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et Polymorphisme
 
POO Java Chapitre 6 Exceptions
POO Java  Chapitre 6 ExceptionsPOO Java  Chapitre 6 Exceptions
POO Java Chapitre 6 Exceptions
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
 
Chapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En JavaChapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En Java
 
Systèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireSystèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoire
 
Introduction a la compilation Analyse lexicale - C2
Introduction a la compilation  Analyse lexicale - C2Introduction a la compilation  Analyse lexicale - C2
Introduction a la compilation Analyse lexicale - C2
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Les intents sous Android
Les intents sous Android Les intents sous Android
Les intents sous Android
 
Android-Tp3: fragments et menus
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menus
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Cours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observerCours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observer
 
Chp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOAChp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOA
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 

En vedette

Future Internet Week - IPv6 the way forward: IPv6 and security from a user’s ...
Future Internet Week - IPv6 the way forward: IPv6 and security from a user’s ...Future Internet Week - IPv6 the way forward: IPv6 and security from a user’s ...
Future Internet Week - IPv6 the way forward: IPv6 and security from a user’s ...ir. Carmelo Zaccone
 
Table ronde AWEX sur l'Internationalisation - spécial jeunes sociétés du numé...
Table ronde AWEX sur l'Internationalisation - spécial jeunes sociétés du numé...Table ronde AWEX sur l'Internationalisation - spécial jeunes sociétés du numé...
Table ronde AWEX sur l'Internationalisation - spécial jeunes sociétés du numé...ir. Carmelo Zaccone
 
IPv6 within the wallon public sector, the AWT case V1
IPv6 within the wallon public sector, the AWT case V1IPv6 within the wallon public sector, the AWT case V1
IPv6 within the wallon public sector, the AWT case V1ir. Carmelo Zaccone
 
Digital Wallonia - ICT in wallonia 2015 / Focus on Telecom
Digital Wallonia - ICT in wallonia 2015 / Focus on TelecomDigital Wallonia - ICT in wallonia 2015 / Focus on Telecom
Digital Wallonia - ICT in wallonia 2015 / Focus on Telecomir. Carmelo Zaccone
 
ICT Guided Tour Canadian Ed. '14
ICT Guided Tour Canadian Ed. '14ICT Guided Tour Canadian Ed. '14
ICT Guided Tour Canadian Ed. '14ir. Carmelo Zaccone
 
From IoT to wearable @ CETIC M2M/UNB
From IoT to wearable @ CETIC M2M/UNBFrom IoT to wearable @ CETIC M2M/UNB
From IoT to wearable @ CETIC M2M/UNBir. Carmelo Zaccone
 
Solution manager et non manager
Solution manager et non managerSolution manager et non manager
Solution manager et non managerSimo El Azzouzi
 
La voix sur IP en Belgique et en Wallonie
La voix sur IP en Belgique et en WallonieLa voix sur IP en Belgique et en Wallonie
La voix sur IP en Belgique et en Wallonieir. Carmelo Zaccone
 
Email des profs
Email des profsEmail des profs
Email des profsHicham Ben
 
memoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagiosmemoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagiosabouaalexis
 
Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)
Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk) Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)
Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk) Dimitri LEMBOKOLO
 

En vedette (20)

3-GSP presentation short
3-GSP presentation short3-GSP presentation short
3-GSP presentation short
 
ICT Guided Tour Asia Ed. 2015
ICT Guided Tour Asia Ed. 2015ICT Guided Tour Asia Ed. 2015
ICT Guided Tour Asia Ed. 2015
 
mon PFA
mon PFAmon PFA
mon PFA
 
Future Internet Week - IPv6 the way forward: IPv6 and security from a user’s ...
Future Internet Week - IPv6 the way forward: IPv6 and security from a user’s ...Future Internet Week - IPv6 the way forward: IPv6 and security from a user’s ...
Future Internet Week - IPv6 the way forward: IPv6 and security from a user’s ...
 
Table ronde AWEX sur l'Internationalisation - spécial jeunes sociétés du numé...
Table ronde AWEX sur l'Internationalisation - spécial jeunes sociétés du numé...Table ronde AWEX sur l'Internationalisation - spécial jeunes sociétés du numé...
Table ronde AWEX sur l'Internationalisation - spécial jeunes sociétés du numé...
 
IPv6 within the wallon public sector, the AWT case V1
IPv6 within the wallon public sector, the AWT case V1IPv6 within the wallon public sector, the AWT case V1
IPv6 within the wallon public sector, the AWT case V1
 
Smart home Cafe Numérique Mons
Smart home Cafe Numérique MonsSmart home Cafe Numérique Mons
Smart home Cafe Numérique Mons
 
Digital Wallonia - ICT in wallonia 2015 / Focus on Telecom
Digital Wallonia - ICT in wallonia 2015 / Focus on TelecomDigital Wallonia - ICT in wallonia 2015 / Focus on Telecom
Digital Wallonia - ICT in wallonia 2015 / Focus on Telecom
 
ICT Guided Tour Canadian Ed. '14
ICT Guided Tour Canadian Ed. '14ICT Guided Tour Canadian Ed. '14
ICT Guided Tour Canadian Ed. '14
 
Poo vb.net
Poo vb.netPoo vb.net
Poo vb.net
 
From IoT to wearable @ CETIC M2M/UNB
From IoT to wearable @ CETIC M2M/UNBFrom IoT to wearable @ CETIC M2M/UNB
From IoT to wearable @ CETIC M2M/UNB
 
Transition de l'AWT vers  IPv6
Transition de l'AWT vers  IPv6Transition de l'AWT vers  IPv6
Transition de l'AWT vers  IPv6
 
Memoire final sfallou
Memoire final sfallouMemoire final sfallou
Memoire final sfallou
 
Solution manager et non manager
Solution manager et non managerSolution manager et non manager
Solution manager et non manager
 
La voix sur IP en Belgique et en Wallonie
La voix sur IP en Belgique et en WallonieLa voix sur IP en Belgique et en Wallonie
La voix sur IP en Belgique et en Wallonie
 
Toip slide
Toip slideToip slide
Toip slide
 
Email des profs
Email des profsEmail des profs
Email des profs
 
memoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagiosmemoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagios
 
Les Communications Unifiées
Les Communications UnifiéesLes Communications Unifiées
Les Communications Unifiées
 
Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)
Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk) Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)
Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)
 

Similaire à Poo

PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.pptPROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.pptEddySHANGA
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiersHeithem Abbes
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfYasushiTsubakik
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapportInes Ouaz
 
Architecture Logiciel_GRASP11111111.pptx
Architecture Logiciel_GRASP11111111.pptxArchitecture Logiciel_GRASP11111111.pptx
Architecture Logiciel_GRASP11111111.pptxafamanalafa2001
 
Language C++ Ch01
Language C++ Ch01 Language C++ Ch01
Language C++ Ch01 yarsenv47
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logicielguest0032c8
 
applications-reparties
applications-repartiesapplications-reparties
applications-repartiesmourad50
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...Hamza SAID
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db firstZineb ELGARRAI
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)Sanaa Guissar
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Amina HAMEURLAINE
 

Similaire à Poo (20)

Uml upxp2
Uml upxp2Uml upxp2
Uml upxp2
 
PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.pptPROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
 
Pe
PePe
Pe
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdf
 
My droid
My droidMy droid
My droid
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapport
 
Ktab asd
Ktab asdKtab asd
Ktab asd
 
Asd
AsdAsd
Asd
 
Apprentissage du java
Apprentissage du javaApprentissage du java
Apprentissage du java
 
Architecture Logiciel_GRASP11111111.pptx
Architecture Logiciel_GRASP11111111.pptxArchitecture Logiciel_GRASP11111111.pptx
Architecture Logiciel_GRASP11111111.pptx
 
Language C++ Ch01
Language C++ Ch01 Language C++ Ch01
Language C++ Ch01
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logiciel
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...
 
7 diagramme de cas d'utilisation
7 diagramme de cas d'utilisation7 diagramme de cas d'utilisation
7 diagramme de cas d'utilisation
 
diagramme de cas d'utilisation
diagramme de cas d'utilisationdiagramme de cas d'utilisation
diagramme de cas d'utilisation
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++
 

Plus de Dimitri LEMBOKOLO

Openfire + Active Directory sur Windows 2008 R2
Openfire + Active Directory sur  Windows 2008 R2Openfire + Active Directory sur  Windows 2008 R2
Openfire + Active Directory sur Windows 2008 R2Dimitri LEMBOKOLO
 
Comment enlever un mot de passe admin win 7 sans logiciel
Comment enlever un mot de passe admin win 7 sans logicielComment enlever un mot de passe admin win 7 sans logiciel
Comment enlever un mot de passe admin win 7 sans logicielDimitri LEMBOKOLO
 
Installation cisco call manager 6.0
Installation cisco call manager 6.0Installation cisco call manager 6.0
Installation cisco call manager 6.0Dimitri LEMBOKOLO
 
Tuto Serveur Vocal Interactif (SVI ou IVR)
Tuto Serveur Vocal Interactif  (SVI ou IVR)Tuto Serveur Vocal Interactif  (SVI ou IVR)
Tuto Serveur Vocal Interactif (SVI ou IVR)Dimitri LEMBOKOLO
 
Lightweight directory access protocol
Lightweight directory access protocolLightweight directory access protocol
Lightweight directory access protocolDimitri LEMBOKOLO
 
Installation et configuration d'ads 2003
Installation et configuration d'ads 2003Installation et configuration d'ads 2003
Installation et configuration d'ads 2003Dimitri LEMBOKOLO
 
Installation de windows 2003serveur
Installation de windows 2003serveurInstallation de windows 2003serveur
Installation de windows 2003serveurDimitri LEMBOKOLO
 
Installation de wink sous fedora
Installation de wink sous fedoraInstallation de wink sous fedora
Installation de wink sous fedoraDimitri LEMBOKOLO
 
Installation et configuration de openfire
Installation et configuration de openfireInstallation et configuration de openfire
Installation et configuration de openfireDimitri LEMBOKOLO
 

Plus de Dimitri LEMBOKOLO (19)

Openfire + Active Directory sur Windows 2008 R2
Openfire + Active Directory sur  Windows 2008 R2Openfire + Active Directory sur  Windows 2008 R2
Openfire + Active Directory sur Windows 2008 R2
 
Comment enlever un mot de passe admin win 7 sans logiciel
Comment enlever un mot de passe admin win 7 sans logicielComment enlever un mot de passe admin win 7 sans logiciel
Comment enlever un mot de passe admin win 7 sans logiciel
 
Installation cisco call manager 6.0
Installation cisco call manager 6.0Installation cisco call manager 6.0
Installation cisco call manager 6.0
 
Installation de fedora 11
Installation de fedora 11Installation de fedora 11
Installation de fedora 11
 
VPNIPSec site to site
VPNIPSec site to siteVPNIPSec site to site
VPNIPSec site to site
 
Tuto Serveur Vocal Interactif (SVI ou IVR)
Tuto Serveur Vocal Interactif  (SVI ou IVR)Tuto Serveur Vocal Interactif  (SVI ou IVR)
Tuto Serveur Vocal Interactif (SVI ou IVR)
 
Tuto VP IPSEC Site-to-site
Tuto VP IPSEC Site-to-siteTuto VP IPSEC Site-to-site
Tuto VP IPSEC Site-to-site
 
Tutoriel nat pat
Tutoriel nat patTutoriel nat pat
Tutoriel nat pat
 
Messagerie
MessagerieMessagerie
Messagerie
 
Lightweight directory access protocol
Lightweight directory access protocolLightweight directory access protocol
Lightweight directory access protocol
 
GNS3, VoIP, ToIP
GNS3, VoIP, ToIPGNS3, VoIP, ToIP
GNS3, VoIP, ToIP
 
Rapport bluetooth
Rapport bluetooth Rapport bluetooth
Rapport bluetooth
 
Implémentation d'openvpn
Implémentation d'openvpnImplémentation d'openvpn
Implémentation d'openvpn
 
Dhcp sous fedora 11
Dhcp sous fedora 11Dhcp sous fedora 11
Dhcp sous fedora 11
 
Configuration dns
Configuration dnsConfiguration dns
Configuration dns
 
Installation et configuration d'ads 2003
Installation et configuration d'ads 2003Installation et configuration d'ads 2003
Installation et configuration d'ads 2003
 
Installation de windows 2003serveur
Installation de windows 2003serveurInstallation de windows 2003serveur
Installation de windows 2003serveur
 
Installation de wink sous fedora
Installation de wink sous fedoraInstallation de wink sous fedora
Installation de wink sous fedora
 
Installation et configuration de openfire
Installation et configuration de openfireInstallation et configuration de openfire
Installation et configuration de openfire
 

Poo

  • 2.
  • 3. I : l’Approche Orientée Objet
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. LIMITES DE LA LA PROGRAMMATION FONCTIONNELLE Maintenance complexe : avec la factorisation des comportements, les fonctions sont devenues interdépendantes. Une simple mise à jour du logiciel à un point donné, peut entraîner , en cascade, la modification d’une multitude d’autres fonctions. En cas d’évolution majeure du logiciel (passer, par exemple, de la gestion d’une bibliothèque à celle d’un médiathèque, l’écriture du logiciel devient plus complexe. Même si la structure générale du logiciel reste valide, la multiplication des points de maintenance, engendrée par le chaînage des fonctions, rend l’adaptation très laborieuse. Il faut retoucher le logiciel dans sa globalité. L'approche fonctionnelle n'est pas adaptée au développement d'applications qui évoluent sans cesse et dont la complexité croit continuellement (plusieurs dizaines de milliers de lignes de code).
  • 9. L’APPROCHE ORIENTEE OBJET L’approche orientée La nécessité impérative d’une information de bonne qualité , l’explosion de besoins nouveaux découlant de l’ouverture des Systèmes d’Informations (SI) ne laissent d’autres choix que de rechercher de nouvelles méthodes, beaucoup plus efficaces, pour la prise en charge des applications. L’approche orientée objet est aujourd’hui l’une des pierres angulaires de l’évolution à laquelle l’entreprise est contrainte. Elle conduit tout naturellement à une vision différente de la vision procédurale (fonctionnelle) et plus proche de la réalité des métiers. L’approche orientée objet a pour origine la programmation à objets dont les langages Smalltalk et C++ sont les représentants. Elle a obtenu ses premiers succès importants avec la programmation d’interfaces graphiques. Depuis, son application s’est généralisée à de nombreux domaines dont le génie logiciel, les systèmes repartis et les bases de données. L’approche orientée objet apporte des avantages décisifs comme la modularité , la réutilisabilité et l’ extensibilité du code qui conduisent à une meilleur productivité des développeurs et à une plus grande qualité des applications.
  • 10. II : Concepts de la Programmation Orientée Objet
  • 11.
  • 12.
  • 13. OBJETS méthode : Une méthode est une fonction ou un traitement qui manipule des attributs. Une méthode est liée à un objet , elle est déclenchée à la réception d’un message particulier : la méthode déclenchée correspond strictement au message reçu. Exemple d’une entité logicielle Pour calculer la somme des n premiers entiers, il est possible de concevoir une entité logicielle appelée SommeN dont le fonctionnement revient à interpréter certains messages que l’on pourra lui envoyer (voir figure) Une telle entité, du point de vue de l’utilisateur, est une boîte noire qui réagit seulement à la réception de message. Entité , qui sait calculer la somme des N premiers entiers et l’afficher SommeN Messages initialiseToi faisSomme pour N précisé afficheSomme
  • 14.
  • 15. OBJETS La liste des méthodes constitue l’ interface de l’ objet pour l’utilisation : ce sont les messages que l’ objet peut comprendre si on les lui envoie, et dont la réception déclenche les méthodes correspondantes. Signature : La précision d’une méthode (nom de la méthode), du type de ses arguments et du type de donnée retournée s’appelle signature de méthode . Exemple : int additionEntier ( int a, int b) Représentation de l’objet SommeN : vision programmeur Type de retour Précision de la méthode Type des paramètres Objet SommeN Attributs I,S : Entier N : Entier Méthodes initialiseToi () retourne vide faisSomme (Entier) retourne vide afficheSomme () retourne vide
  • 16. OBJETS Encapsulation : On dit qu’un objet , qui réunit dans une même entité attributs et méthodes , les encapsule . Les détails de l’implémentation de l’ objet sont masqués aux autres objets du système à objets . On dit qu’il y’a encapsulation des données et du comportement des objets. L’encapsulation applique le principe d’ abstraction : un objet n’est accessible que par ses opérations visibles (son interfaces externe ). Ainsi les modifications de données restent locales aux objets et sont sans effet sur les programmes utilisateurs. L’encapsulation apporte alors indépendance entre programmes , opérations et données . Modularité : La modularité d’un logiciel consiste à regrouper des classes qui participent à la réalisation d’un service ou d’une fonctionnalité donnée au sein d’un même package (ou module ).
  • 17. CLASSES Définition : Une classe est un ensembles d’objets qui ont en commun les mêmes méthodes et qui partagent les mêmes types d’attributs. Une classe est en sorte un type abstrait qui encapsule données et comportements. C’est une sorte de « moule », qui permet ensuite de créer autant d’instances que l’on veut, et ces instances seront des objets instances de la classe, auxquels on pourra effectivement envoyer des messages, qui activeront les méthodes correspondantes. Instance : Une instance d’une classe est un objet particulier d’une classe qui peut activer les méthodes de la classe et qui a des valeurs particulières pour ses attributs. Classe Attributs Méthodes Une instance de la classe Une autre instance de la classe Encore une instance de la classe Une classe et trois de ses instances
  • 18.
  • 19.
  • 20.
  • 21. CLASSES Invocation d’une méthode Il reste enfin à préciser comment on invoque une méthode sur un objet. Cela se fait par l’application, sur l’identificateur de l’objet, du nom de la méthode à l’aide d’un opérateur, l’opérateur «  .  » L’appel d’une méthode sur un objet receveur est alors le suivant : instance_de_classe . méthode (); Utilisation de la classe Personne Il est maintenant possible d’utiliser la classe Personne, puisque celle-ci est déclarée et que ses méthodes ont été écrites. Il a même été possible de définir la classe dans un algorithme dont le rôle se limitait strictement à cela. Un autre algorithme va en permettre l’utilisation. Un mot-clé permet de préciser qu’elle classe est utilisée dans ce nouvel algorithme et ainsi d’identifier les méthodes employées. Ce mot-clé, placé au tout début de l’algorithme, est utlise . utilise Nom_de_classe;
  • 22. CLASSES Algorithme : déclaration de Peronne class Personne debut privé // les attributs suivants ne sont pas accessibles de l’extérieur de la classe nom, adresse : chaîne de caractères; âge : Entier; public // les méthodes seront déclarées publiques, accessibles de l’extérieur initialiser (x : chaîne de caractères, y : chaîne de caractères, z : entier) retourne vide debut non  x; adresse  y; âge  z; fin
  • 23. CLASSES catégorieDâge () retourne vide debut si (âge > 50) alors écrire (‘’Personne agée’’); sinon si (âge < 20) alors écrire (‘’Personne jeune ’’); sinon écrire (‘’Age moyen’’); fin catégorieDeResidence () retourne vide debut si (adresse = ‘’Ville’’) alors écrire (‘’Habitant urbain’’); sinon si (adresse =‘’Village’’) alors écrire (‘’Villageois’’); sinon écrire (‘’Habitant rural’’); fin fin
  • 24. CLASSES utilise Personne ; //on connaît ainsi la classe Personne et ses attributs class ManipulationDePersonne variables : personne1, personne2, personne3 : Personne // déclaration de trois objets instances de la classe Personne debut personne1  new Personne (); // création effective d’un objet personne2  new Personne (); // création effective d’un autre objet personne3  new Personne (); // création du troisième objet personne1.initialiser (‘’Bemba’’, ’’ville’’,35); personne2.initialiser (‘’Loemba’’, ’’campagn2’’,35); personne1.categorieDâge (); personne1.categorieDeResidence (); fin
  • 25.
  • 26. CLASSES Les constructeurs : Exemple 2 classe Toto debut …… public Toto (x : Entier, y : Entier) ; // signature du constructeur avec arguments fin …… fin La classe Personne, de l’exemple précédent, peut implémenter le constructeur suivant : Personne ( x : chaîne de caractères, y : chaîne de caractères, z : Entier) retourne vide Si nous reprenons l’algorithme de la classe Personne comportant cette fois-ci un constructeur, nous aurons :
  • 27. CLASSES Algorithme : déclaration de Personne avec un constructeur class Personne debut privé // les attributs suivants ne sont pas accessibles de l’extérieur de la classe nom, adresse : chaîne de caractères; âge : Entier; public // les méthodes seront déclarées publiques, accessibles de l’extérieur Personne (x : chaîne de caractères, y : chaîne de caractères, z : entier) retourne vide debut non  x; adresse  y; âge  z; fin
  • 28. CLASSES catégorieDâge () retourne vide debut si (âge > 50) alors écrire (‘’Personne agée’’); sinon si (âge < 20) alors écrire (‘’Personne jeune ’’); sinon écrire (‘’Age moyen’’); fin catégorieDeResidence () retourne vide debut si (adresse = ‘’Ville’’) alors écrire (‘’Habitant urbain’’); sinon si (adresse =‘’Village’’) alors écrire (‘’Villageois’’); sinon écrire (‘’Habitant rural’’); fin fin
  • 29. CLASSES utilise Personne ; //on connaît ainsi la classe Personne et ses attributs class ManipulationDePersonne variables : personne1, personne2, personne3 : Personne // déclaration de trois objets instances de la classe Personne debut personne1  new Personne (‘’Bemba’’, ’’ville’’,35); // création et initialisation des attributs par le // constructeur personne2  new Personne (‘’Loemba’’, ’’Village’’,35); // création effective d’un autre objet personne1.categorieDâge (); personne1.categorieDeResidence (); personne2.categorieDâge (); personne2.categorieDeResidence (); fin
  • 30. L’HERITAGE Le concet d’héritage est central dans l’approche objet. Il est en effet très rare de concevoir un système dans lequel il n’existe pas de classes liées par héritage Définition : Une classe peut être considérée comme héritant d’une autre si elle peut activer toutes les méthodes de cette dernière et si elle contient également tous ses attributs. Graphe d’héritage Le graphe d’héritage d’un ensemble de classes est la structure représentant la manière dont les classes sont liées les unes aux autres par héritage. Ce graphe constitue une hiérarchie. Exemple La classe Quadrupède est une classe générale. Elle se spécialise en deux sous-classes indépendantes et de même niveau de spécialisation, la classe Chien et la classe Cheval .
  • 31. L’HERITAGE Toutes les propriétés de la classe quadrupède, et en particulier le fait d’avoir quatre pattes, sont automatiquement portées dans ces deux sous-classes. La classe Chien précise que l’animal pratique l’aboiement alors que la classe Cheval précise que l’animal est utilisé pour travailler dans des exploitations agricoles. Quadrupède Cheval Chien Une hiérarchie de trois classes
  • 32.
  • 33. L’HERITAGE Dans l’exemple précédent, un objet instance de la classe Chien peut se voir appliquer la méthode nombreDePattes (), qui retournera vraisemblablement quatre, car cette classe hérite de la classe Quadrupède et peut donc utiliser toutes ses méthodes . Les méthodes nombreDePattes (), decritType () , decritSite () s’appliquent donc à des objets de type Quadrupède, Chien et Cheval. Par contre, il est impossible d’appliquer la méthode sonPropriétaire () à un objet instance de Quadrupède ou instance de Cheval car la méthode est spécifique à la classe Chien. Définition des classes de l’héritage classe A spécialise B // A hérite de B { privé // zone de définition des éléments privés ……… public // zone de définition des éléments publics …… .. }
  • 34. POLYMORPHISME Les méthodes sont attachées aux classes et précisent leur comportement. Il sera possible de donner à des méthodes de classes différentes le même identificateur. Cette propriété, qui revient à définir un même identificateur pour désigner plusieurs méthodes de plusieurs classes , s’appelle polymorphisme . Ainsi, la méthode déclenchée dépendra de l’objet receveur et ne pourra pas être attribuée a priori à une classe. Nous avons déjà utilisé ce concept dans l’exemple précédent. L’identificateur de méthodes sonNom() correspond soit à une méthode de la classe Chien , soit à la méthode de la classe Cheva l, qui à priori, ne sont pas les mêmes. C’est seulement lorsque le receveur sera connu, que la bonne méthode sera déclenchée.
  • 35. SURCHARE ET REDEFINION DE METHODE Surcharge de méthode : Il peut arriver que l’on définisse plusieurs fois une même méthode pour une même classe, en gardant donc le même identificateur, mais en changeant le type ou le nombre des paramètres des méthodes récrites. Sinon, il y aurait ambiguïté dans l’appel des méthodes, puisqu’elles auraient la même signature. On dit que l’on surcharge la méthode. Ce cas de définition de méthodes ayant le même identificateur sera fréquente pour les constructeurs. Redéfinition de méthode Il peut arriver que l’on souhaite redéfinir dans une classe dérivée une méthode de la classe mère . On dit, dans ce cas, que l’on redéfinit la méthode, qui est déjà opérante dans la classe fille par héritage, par une méthode locale qui va la masquer.