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

Contenu connexe

Tendances

Tendances (7)

TD Java POO
TD Java POO TD Java POO
TD Java POO
 
Introduction à jQuery
Introduction à jQueryIntroduction à jQuery
Introduction à jQuery
 
Chapitre 4 la programmation oriénté objet
Chapitre 4 la programmation oriénté objetChapitre 4 la programmation oriénté objet
Chapitre 4 la programmation oriénté objet
 
Langage C#
Langage C#Langage C#
Langage C#
 
Csharp2014
Csharp2014Csharp2014
Csharp2014
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & Objet
 

En vedette

Cours python
Cours pythonCours python
Cours pythonsalmazen
 
Cypyth formation-programmation-objet-en-langage-python
Cypyth formation-programmation-objet-en-langage-pythonCypyth formation-programmation-objet-en-langage-python
Cypyth formation-programmation-objet-en-langage-pythonCERTyou Formation
 
OpenStack Havana, tour d'horizon
OpenStack Havana, tour d'horizonOpenStack Havana, tour d'horizon
OpenStack Havana, tour d'horizonYannick Foeillet
 
SeSQL : un moteur de recherche en Python et PostgreSQL
SeSQL : un moteur de recherche en Python et PostgreSQLSeSQL : un moteur de recherche en Python et PostgreSQL
SeSQL : un moteur de recherche en Python et PostgreSQLParis, France
 
Les langages de programmation sont trop compliqués
Les langages de programmation sont trop compliquésLes langages de programmation sont trop compliqués
Les langages de programmation sont trop compliquésmercury_wood
 
Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Pythonyboussard
 
Modelisation agile 03122011
Modelisation agile  03122011Modelisation agile  03122011
Modelisation agile 03122011agnes_crepet
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesLilia Sfaxi
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec OdooHassan WAHSISS
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonMohammed TAMALI
 
Introduction à la POO - cours 1h
Introduction à la POO - cours 1hIntroduction à la POO - cours 1h
Introduction à la POO - cours 1hJohann Dreo
 
Programmation orienté aspect
Programmation orienté aspectProgrammation orienté aspect
Programmation orienté aspectmeriem sari
 
Sqlalchemy declaratif
Sqlalchemy declaratifSqlalchemy declaratif
Sqlalchemy declaratifAffinitic
 
alphorm.com - Formation UML
alphorm.com - Formation UMLalphorm.com - Formation UML
alphorm.com - Formation UMLAlphorm
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiqueOussama Yoshiki
 

En vedette (20)

Cours python
Cours pythonCours python
Cours python
 
Cypyth formation-programmation-objet-en-langage-python
Cypyth formation-programmation-objet-en-langage-pythonCypyth formation-programmation-objet-en-langage-python
Cypyth formation-programmation-objet-en-langage-python
 
OpenStack Havana, tour d'horizon
OpenStack Havana, tour d'horizonOpenStack Havana, tour d'horizon
OpenStack Havana, tour d'horizon
 
La sabiduría
La sabiduríaLa sabiduría
La sabiduría
 
Solucion y Psicologia del Bienestar
Solucion y Psicologia del BienestarSolucion y Psicologia del Bienestar
Solucion y Psicologia del Bienestar
 
Python debugger
Python debuggerPython debugger
Python debugger
 
SeSQL : un moteur de recherche en Python et PostgreSQL
SeSQL : un moteur de recherche en Python et PostgreSQLSeSQL : un moteur de recherche en Python et PostgreSQL
SeSQL : un moteur de recherche en Python et PostgreSQL
 
Les langages de programmation sont trop compliqués
Les langages de programmation sont trop compliquésLes langages de programmation sont trop compliqués
Les langages de programmation sont trop compliqués
 
Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Python
 
Modelisation agile 03122011
Modelisation agile  03122011Modelisation agile  03122011
Modelisation agile 03122011
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de Classes
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec Odoo
 
UML+Python
UML+PythonUML+Python
UML+Python
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
 
Introduction à la POO - cours 1h
Introduction à la POO - cours 1hIntroduction à la POO - cours 1h
Introduction à la POO - cours 1h
 
Programmation orienté aspect
Programmation orienté aspectProgrammation orienté aspect
Programmation orienté aspect
 
Sqlalchemy declaratif
Sqlalchemy declaratifSqlalchemy declaratif
Sqlalchemy declaratif
 
alphorm.com - Formation UML
alphorm.com - Formation UMLalphorm.com - Formation UML
alphorm.com - Formation UML
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatique
 
CM uml-concepts-avances
CM uml-concepts-avancesCM uml-concepts-avances
CM uml-concepts-avances
 

Similaire à Theme 10

Programmation-Python.pdf
Programmation-Python.pdfProgrammation-Python.pdf
Programmation-Python.pdfsalem ghandri
 
Java cours n° 2 - classe-objet-constructeur
Java   cours n° 2 - classe-objet-constructeurJava   cours n° 2 - classe-objet-constructeur
Java cours n° 2 - classe-objet-constructeurAbdelwahab Naji
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonAbdoulaye Dieng
 
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfTutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfRihabBENLAMINE
 
UML OCL : Liaison avecUML -- 24
UML OCL : Liaison avecUML -- 24UML OCL : Liaison avecUML -- 24
UML OCL : Liaison avecUML -- 24megaplanet20
 
Ecriture de classes javascript
Ecriture de classes javascriptEcriture de classes javascript
Ecriture de classes javascriptThierry Gayet
 
POO_Java_BasesLangage.pdf
POO_Java_BasesLangage.pdfPOO_Java_BasesLangage.pdf
POO_Java_BasesLangage.pdfLarbaSAWADOGO2
 
fdocuments.fr_chap-03-poo-en-java-partie1.pptx
fdocuments.fr_chap-03-poo-en-java-partie1.pptxfdocuments.fr_chap-03-poo-en-java-partie1.pptx
fdocuments.fr_chap-03-poo-en-java-partie1.pptxTarikElMahtouchi1
 
Développement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbreDéveloppement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbreECAM Brussels Engineering School
 
PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.pptPROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.pptEddySHANGA
 
Java-2eme partie.pptx
Java-2eme partie.pptxJava-2eme partie.pptx
Java-2eme partie.pptxHassanAbdel
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++coursuniv
 
Classes et Objets.pdf
Classes et Objets.pdfClasses et Objets.pdf
Classes et Objets.pdfAabidiHafid
 
chapitre4-HeritageetPolymorphisme.pdf
chapitre4-HeritageetPolymorphisme.pdfchapitre4-HeritageetPolymorphisme.pdf
chapitre4-HeritageetPolymorphisme.pdfMoez Moezm
 
Symfony 2 : chapitre 3 - Les modèles en Doctrine 2
Symfony 2 : chapitre 3 - Les modèles en Doctrine 2Symfony 2 : chapitre 3 - Les modèles en Doctrine 2
Symfony 2 : chapitre 3 - Les modèles en Doctrine 2Abdelkader Rhouati
 
JAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAJAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAAymen Bedwivski
 

Similaire à Theme 10 (20)

Programmation-Python.pdf
Programmation-Python.pdfProgrammation-Python.pdf
Programmation-Python.pdf
 
Java cours n° 2 - classe-objet-constructeur
Java   cours n° 2 - classe-objet-constructeurJava   cours n° 2 - classe-objet-constructeur
Java cours n° 2 - classe-objet-constructeur
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
Java
JavaJava
Java
 
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfTutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
 
UML OCL : Liaison avecUML -- 24
UML OCL : Liaison avecUML -- 24UML OCL : Liaison avecUML -- 24
UML OCL : Liaison avecUML -- 24
 
Ecriture de classes javascript
Ecriture de classes javascriptEcriture de classes javascript
Ecriture de classes javascript
 
POO_Java_BasesLangage.pdf
POO_Java_BasesLangage.pdfPOO_Java_BasesLangage.pdf
POO_Java_BasesLangage.pdf
 
fdocuments.fr_chap-03-poo-en-java-partie1.pptx
fdocuments.fr_chap-03-poo-en-java-partie1.pptxfdocuments.fr_chap-03-poo-en-java-partie1.pptx
fdocuments.fr_chap-03-poo-en-java-partie1.pptx
 
Développement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbreDéveloppement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbre
 
PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.pptPROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
 
Java-2eme partie.pptx
Java-2eme partie.pptxJava-2eme partie.pptx
Java-2eme partie.pptx
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 
Classes et Objets.pdf
Classes et Objets.pdfClasses et Objets.pdf
Classes et Objets.pdf
 
chapitre4-HeritageetPolymorphisme.pdf
chapitre4-HeritageetPolymorphisme.pdfchapitre4-HeritageetPolymorphisme.pdf
chapitre4-HeritageetPolymorphisme.pdf
 
Symfony 2 : chapitre 3 - Les modèles en Doctrine 2
Symfony 2 : chapitre 3 - Les modèles en Doctrine 2Symfony 2 : chapitre 3 - Les modèles en Doctrine 2
Symfony 2 : chapitre 3 - Les modèles en Doctrine 2
 
Cours_Java.pdf
Cours_Java.pdfCours_Java.pdf
Cours_Java.pdf
 
JAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAJAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVA
 

Plus de salmazen

Plus de salmazen (20)

Theme 9(bis)
Theme 9(bis)Theme 9(bis)
Theme 9(bis)
 
Theme 9
Theme 9Theme 9
Theme 9
 
Theme 8(suite)
Theme 8(suite)Theme 8(suite)
Theme 8(suite)
 
Theme 8
Theme 8Theme 8
Theme 8
 
Theme 7 (suite)
Theme 7 (suite)Theme 7 (suite)
Theme 7 (suite)
 
Theme 7
Theme 7Theme 7
Theme 7
 
Theme 6
Theme 6Theme 6
Theme 6
 
Theme 5
Theme 5Theme 5
Theme 5
 
Exemples for1
Exemples for1Exemples for1
Exemples for1
 
Exemples while2
Exemples while2Exemples while2
Exemples while2
 
Exemples for
Exemples forExemples for
Exemples for
 
Exemples if
Exemples ifExemples if
Exemples if
 
Exemples while
Exemples whileExemples while
Exemples while
 
Theme3
Theme3Theme3
Theme3
 
Theme4
Theme4Theme4
Theme4
 
Theme3
Theme3Theme3
Theme3
 
Exercice0
Exercice0Exercice0
Exercice0
 
Theme2
Theme2Theme2
Theme2
 
Theme2
Theme2Theme2
Theme2
 
Theme1 (1)
Theme1 (1)Theme1 (1)
Theme1 (1)
 

Theme 10

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