Академический Документы
Профессиональный Документы
Культура Документы
POO p.1
POO p.2
POO p.4
galit dobjets
>>> p1=Point() ; p1.x=5 ; p1.y=3 >>> p2=Point() ; p2.x=5 ; p2.y=3 >>> print p1==p2 False >>> p1=Point() ; p1.x=5 ; p1.y=3 >>> p2=p1 >>> print p1==p2 True >>> affichePoint(p1) Abscisse : 5 Ordonne : 3 e >>> p2.x=0 >>> affichePoint(p1) e Abscisse : 0 Ordonne : 3
POO p.6
Mthodes
Une mthode est une fonction attache un objet. Elle est dnie dans la classe de cet objet. Dniton dune mthode class Point : "Dfinition dun point mathmatique" e e x=0 y=0 def affiche(self) : "Affiche lobjet" print "Absc. :",self.x,"Ord. :",self.y Utilisation dune mthode >>> point=Point() >>> point.affiche() Absc. : 0 Ord. : 0
POO p.7
Mthodes classique
Pour respecter le principe dencapsulation de la programmation objets, on vite daccder directement aux attributs dun objet Mthodes classiques : class Point : x=0 ; y=0 def getx(self) : return self.x def sety(self,y) : self.y = y def getCoord(self) : return (self.x,self.y) def setCoord(self,x,y) : self.x = x ; self.y = y
POO p.8
Le constructeur
La mthode constructeur est appele la cration dun objet. En Python cest la fonction __init__ Dnition du constructeur : class Point:
def __init__(self,x=0,y=0): "Le constructeur de la classe" self.x = x self.y = y pt=Point(15,12) >>>pt.affiche() Absc. : 15 Ord. : 12
POO p.9
Le constructeur - 2
Trs souvent en Python on ne dclare pas les attributs dun objets Ils sont souvent dnis et initialiss par le constructeur Exemple : class Point: x=0 # Ces deux lignes sont y=0 # inutiles en Python def __init__(self,x=0,y=0): "Le constructeur de la classe" # Ceci suffit ` dfinir les a e # champs des points self.x = x self.y = y
POO p.10
Le destructeur
La mthode destructeur est appele la destruction dun objet. En Python cest la fonction __del__ Dnition du destructeur : class Point:
def __del__(self): print "Un point a t dtruit" e e e def bidon(): pt=Point() >>> bidon() Un point a t dtruit e e e
POO p.11
Nouveaux objets
Il est possible de dnir des objets en utilisant dautres objets class Point: def __init__(self,x=0,y=0): def bouge(self,dx=0,dy=0):
class Rectangle: "Simple rectangle" def __init__(self,x=0,y=0,l=0,L=0): self.base=Point(x,y) self.long=l self.larg=L def bouge(self,dx=0,dy=0): "Deplacement de la base du rectangle" self.base.bouge(dx,dy)
POO p.12
Remarque
Il est ainsi possible de construire de nouveaux objets en utilisant de nombreux objets prdnis
Exercice
Exercice. Construire une classe temps disposant dheure, de minute ` et de secondes. Ayant un constructeur qui par defaut initialise le temps a zero heure pile. On prevoira egalement une methode dafchage qui afche un temps de cette facon : hh : mm :ss
POO p.13
POO p.14
Hritage
Lhritage consiste dnir une nouvelle classe partir dune classe existante Exemple : class PointCol(Point):
def __init__(self,x=0,y=0,col=rouge): "Le constructeur de la classe" self.x = x self.y = y self.col=col
POO p.15
Hritage - 2
Lorsquune classe hrite dune autre elle peut : Utiliser les attributs de la classe parent Utiliser les mthodes de la classe parent dnir de nouveaux attributs dnir de nouvelle mthodes Rednir certaines mthodes
POO p.16