Theme10Les classes<br />2011-04-14<br />1<br />
La programmation Orientée Objet (POO)<br />Un paradigme de programmation informatique<br />Rendre un code source <br />Plu...
Classes: exemple introductif 1<br />3<br />Caractéristiques des végétaux<br />Comportement des végétaux<br />Caractéristiq...
Classes: exemple introductif 2<br />4<br />
Classes: Definition<br />Une classe est une structure particulière dans le langage objet<br />Décrit la structure interne ...
Avantages des classes<br />Permettent de  créer des logiciels complexes: interaction entre différents objets et avec le mo...
Définition d’une classe<br />Exemple: un point est défini par ses coordonnées:<br />Abscisse X<br />Ordonnée Y<br />Défini...
Attributs d’une classe<br />Attributs(variables): propriétés des objets d’une classe<br />8<br /># definition de la classe...
Méthodes<br />Les méthodes définissent le comportement des objets de la classe<br />La définition d'une méthode est toujou...
10<br />Class MonPoint:  <br />"definition d'un point geometrique " <br />x=0  #assignation de valeur a l’attribut x<br />...
Instanciation: Création d’un objet<br />Point<br />11<br />
Instanciation: Création d’un objet<br />12<br /># definition de la classe<br />Class MonPoint:  <br />"definition d'un poi...
13<br />Class MonPoint:  <br />"definition d'un point geometrique " <br />x=0  #assignation de valeur a l’attribut x<br />...
Méthode spéciale: le constructeur<br />Exécutée automatiquement lors de l’instanciation <br />des objets<br />Sert a initi...
Typage des attributs<br />Les types prédéfinis dans Python: booléen, entier, réel, String, liste, tuple, dictionnaire,…<br...
Similitude et unicité<br />Deux objets (instances) d’une même classe<br />Même attributs<br />Mêmes méthodes<br />Chaque o...
Exercice 10.1<br />Définissez une classe Cercle(). Les objets construits à partir de cette classe seront des cercles de ta...
Exercice 10.2<br />Ecrire un script Python qui permet de représenter une liste d’individus<br />Chaque individu a un nom, ...
Héritage entre les classes<br />Dériver à partir d’une classe mère, des classes filles<br />Les classes filles héritent de...
Exemple <br />20<br />Nom<br />Prenom<br />Age<br />Conjoint<br />Nom<br />Prenom<br />Age<br />Conjoint<br />Relevé de no...
Syntaxe pour l’héritage<br />21<br />#<br />class Etudiant(Personne):<br />def_init_(self):<br />Personne._init_(self)<br ...
Prochain SlideShare
Chargement dans…5
×

Theme 10

546 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
546
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
13
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Theme 10

  1. 1. Theme10Les classes<br />2011-04-14<br />1<br />
  2. 2. La programmation Orientée Objet (POO)<br />Un paradigme de programmation informatique<br />Rendre un code source <br />Plus facilement réutilisable<br />Plus facile à modifier<br />Peut être utilisée sous plusieurs langages de programmation (C++, Java, Python,…) <br />Mots clés:<br />Classes<br />Objets /Instances<br />Constructeur<br />Héritage/Polymorphisme<br />…<br />2<br />
  3. 3. Classes: exemple introductif 1<br />3<br />Caractéristiques des végétaux<br />Comportement des végétaux<br />Caractéristiques des champignons<br />Comportement des champignons<br />Caractéristiques des animaux<br />Comportement des animaux<br />Caractéristiques des champignons<br />Comportement des champignons<br />
  4. 4. Classes: exemple introductif 2<br />4<br />
  5. 5. Classes: Definition<br />Une classe est une structure particulière dans le langage objet<br />Décrit la structure interne de données ayant comme type cette classe<br />Définit les méthodes qui s’appliquent aux objets de la même famille<br />Contiennent une méthode qui crée les objets de cette classe.<br />Une classe est équivalente à un type défini par le programmeur<br />5<br />
  6. 6. Avantages des classes<br />Permettent de créer des logiciels complexes: interaction entre différents objets et avec le monde extérieur.<br />Encapsulation: les fonctionnalités propres au comportement de l’objet sont encapsulés dans la classe.<br />Dérivation: construire de nouveaux objets à partir d’objets préexistants<br />6<br />
  7. 7. Définition d’une classe<br />Exemple: un point est défini par ses coordonnées:<br />Abscisse X<br />Ordonnée Y<br />Définition de classe<br />N’importe ou dans un programme: en général, au début<br />Ou dans un module à importer<br />Une convention très répandue veut que l’on donne aux classes des noms qui commencent par une majuscule.<br />7<br />Class MonPoint:<br /> "definition d'un point geometrique"<br />
  8. 8. Attributs d’une classe<br />Attributs(variables): propriétés des objets d’une classe<br />8<br /># definition de la classe<br />Class MonPoint: <br />"definition d'un point geometrique " <br /> x=0 #assignation de valeur a l’attribut x<br /> y=0 #assignation de valeur a l’attribut y<br />…<br />point1 = MonPoint()<br />print point1.x, point1.y<br />point1.x=3.0<br />point1.y=4.0 <br />print point1.x,point1.y<br />0<br />X<br />point1<br />Y<br />0<br />
  9. 9. Méthodes<br />Les méthodes définissent le comportement des objets de la classe<br />La définition d'une méthode est toujours placée à l'intérieur de la définition d'une classe<br />Le premier paramètre utilisé par une méthode doit toujours être une référence d'instance.<br />Self est la référence vers l’instance courante de la classe,<br />9<br />
  10. 10. 10<br />Class MonPoint: <br />"definition d'un point geometrique " <br />x=0 #assignation de valeur a l’attribut x<br /> y=0 #assignation de valeur a l’attribut y<br />defafficherCoordonnees(self):<br />print" x="self.x," y="self.y<br />defchangerCoordonnees(self,pX,pY):<br />self.x= pX<br />self.y= pY<br />defgetX(self):<br /> return self.X<br />defgetY(self):<br /> return self.Y<br />
  11. 11. Instanciation: Création d’un objet<br />Point<br />11<br />
  12. 12. Instanciation: Création d’un objet<br />12<br /># definition de la classe<br />Class MonPoint: <br />"definition d'un point geometrique " <br />… <br /># fin definitionde la classe<br />…<br />point1 = MonPoint()<br />print point1<br />point1 contient la référence (adresse en mémoire) d’un nouvel objet de type MonPoint.<br />point1 est une instance de la classeMonPoint.<br />point1<br />
  13. 13. 13<br />Class MonPoint: <br />"definition d'un point geometrique " <br />x=0 #assignation de valeur a l’attribut x<br /> y=0 #assignation de valeur a l’attribut y<br />defafficherCoordonnees(self):<br />print" x="self.x," y="self.y<br />defchangerCoordonnees(self,pX,pY):<br />self.x= pX<br />self.y= pY<br />defgetX(self):<br /> return self.X<br />defgetY(self):<br /> return self.Y<br />#propgramme principal<br />point1 = MonPoint() <br />point1.afficherCoordonnees()<br />point1.changerCoordonnes(5,3)<br />point1.afficherCoordonnes()<br />
  14. 14. Méthode spéciale: le constructeur<br />Exécutée automatiquement lors de l’instanciation <br />des objets<br />Sert a initialiser les attributs d’un objet<br />14<br />Class MonPoint: <br />"definition d'un point geometrique " <br />def _init_(self):<br />self.x=10<br />self.y=10<br />…<br />point1 = MonPoint() <br />point1.afficherCoordonnees()<br />
  15. 15. Typage des attributs<br />Les types prédéfinis dans Python: booléen, entier, réel, String, liste, tuple, dictionnaire,…<br />Classes prdéfinies dans Pyhton ou définies par l’utilsateur<br />15<br />class Personne:<br />def_init_(self):<br />self.prenom=" " <br /> self.nom=" " <br />self.age="" <br />self.conjoint=Personne() <br />defsetConjoint(self,prs):<br />self.conjoint=prs<br />defgetConjoint(self):<br />return self.conjoint.nom<br />class Enfant:<br />def_init_(self):<br />self.prenom=" " <br />self.nom=" " <br /> self.age="" <br />self.pere=Personne()<br />self.mere=Personne()<br />enfant1=Enfant()<br />prenom<br />nom<br />enfant1<br />age<br />Prenom<br />Nom<br />Age<br />conjoint<br />Prenom<br />Nom<br />Age<br />conjoint<br />pere<br />mere<br />
  16. 16. Similitude et unicité<br />Deux objets (instances) d’une même classe<br />Même attributs<br />Mêmes méthodes<br />Chaque objet a des valeurs particulières pour leurs attributs<br />16<br />Class MonPoint: <br />"definition d'un point geometrique " <br />def _init_(self):<br />self.x=10<br />self.y=10<br />…<br />point1 = MonPoint() <br />point1.x=15<br />point1.y=18<br />point1.afficherCoordonnees()<br />point2 = MonPoint() <br />point2.x=5<br />point2.y=3<br />point2.afficherCoordonnees()<br />
  17. 17. Exercice 10.1<br />Définissez une classe Cercle(). Les objets construits à partir de cette classe seront des cercles de tailles variées. <br />En plus de la méthode constructeur, vous définirez une méthode surface(), qui devra renvoyer la surface du cercle.<br />17<br />
  18. 18. Exercice 10.2<br />Ecrire un script Python qui permet de représenter une liste d’individus<br />Chaque individu a un nom, prenom, age et fonctions<br />Le script doit permettre d’initialiser une liste de dix individus avec des valeurs par défaut.<br />18<br />
  19. 19. Héritage entre les classes<br />Dériver à partir d’une classe mère, des classes filles<br />Les classes filles héritent des propriétés de la classe mère<br />Attributs<br />Méthodes<br />Les classes filles ont des propriétés spécifiques<br />19<br />
  20. 20. Exemple <br />20<br />Nom<br />Prenom<br />Age<br />Conjoint<br />Nom<br />Prenom<br />Age<br />Conjoint<br />Relevé de notes<br />Liste de cours<br />Niveau d’études<br />Nom<br />Prenom<br />Age<br />Conjoint<br />Domaine d’art<br />Liste d’oeuvres<br />Nom<br />Prenom<br />Age<br />Conjoint<br />Matricule<br />NAS<br />Numéro de poste<br />Numéro de bureau<br />
  21. 21. Syntaxe pour l’héritage<br />21<br />#<br />class Etudiant(Personne):<br />def_init_(self):<br />Personne._init_(self)<br />self.ReleveCotes=[]<br />self.ListeCours=[]<br />self.NiveauEtudes="Non defini" <br />defchangerDeNiveauEtudes(niveau):<br />self.NiveauEtudes=niveau<br />class Employe(Personne):<br />def_init_(self):<br />Personne._init_(self)<br />self.Matricule=0<br /> self.NAS=0<br />self.poste=0<br />self.Numéro de bureau=0<br />class Artiste(Personne):<br />def_init_(self):<br />Personne._init_(self)<br />self.domaineArt= " Non defini" <br />self.ListeOeuvres=[]<br />defproduireOeuvre(nouvelleOeuvre):<br />self.ListeOeuvres.append(nouvellesOeuvre)<br />

×