Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Laila AMIR
Laila AMIR 1 / 28
Introduction à POO
Les notions de classe et d’objet
Plan
1 Introduction à POO
Laila AMIR 2 / 28
Introduction à POO
Les notions de classe et d’objet
Outline
1 Introduction à POO
Laila AMIR 3 / 28
Introduction à POO
Les notions de classe et d’objet
Introduction
Laila AMIR 4 / 28
Introduction à POO
Les notions de classe et d’objet
Outline
1 Introduction à POO
Laila AMIR 6 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
1 Point()
Ceci crée un objet de type Point. En POO, on dit que l’on crée
une instance de la classe Point. On utilise le nom de la classe
suivi
Lailade parenthèses. Nous verrons par la suite qu’il peut y avoir 7 / 28
AMIR
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Exp 3 docString
1 >>> print(p.__doc__)
2 Definition d'un point geometrique
Laila AMIR 9 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Laila AMIR 10 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Execution :
p:x=1y=2
p possède deux attributs : x et y. La syntaxe pour accéder à
un attribut : la variable (qui contient la référence à l’objet)
suivi par . puis le nom de l’attribut.
Laila AMIR 11 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Exemple
1 class Point:
2 "Definition d'un point geometrique"
3 a = Point()
4 a.x = 1
5 a.y = 2
6 b = Point()
7 b.x = 3
8 b.y = 4
9 print("a : x =", a.x, "y =", a.y)
10 print("b : x =", b.x, "y =", b.y)
Execution :
a:x=1y=2
b:x=3y=4
On a 2 objets de type Point. Les attributs prennent des valeurs
qui sont propres à l’instance.
Laila AMIR 12 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Laila AMIR 13 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Avertissement
Lors de l’appel de la méthode, le paramètre self n’est pas utilisé
et la valeur qu’il prend est la référence à l’objet. Il y a donc
toujours un paramètre de moins que lors de la
définition de la méthode.
Laila AMIR 14 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Exemple complet
1 class Point:
2 def deplace(self, dx, dy):
3 self.x = self.x + dx
4 self.y = self.y + dy
5
6 a = Point()
7 a.x = 1
8 a.y = 2
9 print("a : x =", a.x, "y =", a.y)
10 a.deplace(3, 5)
11 print("a : x =", a.x, "y =", a.y)
Execution :
a:x=1y=2
a:x=4y=7
Laila AMIR 15 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
La notion de constructeur
Laila AMIR 16 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Execution :
a : x = 0 y = 0 ⇐( valeurs par défaut)
a:x=1y=2
Laila AMIR 17 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Execution :
a:x=1y=2
Ici, on utilise les mêmes noms pour les paramètres du
constructeur et les attributs. Ceci est possible car ces variables
ne sont pas dans le même espace de noms. Les paramètres sont
des variables locales. Les attributs sont dans l’espace de noms
de l’instance. Les attributs se distinguent par self devant.
Laila AMIR 18 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Exemple complet
1 class Point:
2 def __init__(self, x, y):
3 self.x = x
4 self.y = y
5 def deplace(self, dx, dy):
6 self.x = self.x + dx Execution :
7 self.y = self.y + dy a:x=1 y = 2
8
9 a = Point(1, 2)
b:x=3 y = 4
10 b = Point(3, 4) a:x=4 y = 7
11 print("a : x =", a.x, "y =", a.y) b:x=2 y = 2
12 print("b : x =", b.x, "y =", b.y)
13 a.deplace(3, 5)
14 b.deplace(-1, -2)
15 print("a : x =", a.x, "y =", a.y)
16 print("b : x =", b.x, "y =", b.y)
Laila AMIR 19 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
La notion d’encapsulation
Laila AMIR 20 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Laila AMIR 21 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Laila AMIR 22 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Laila AMIR 23 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Accesseurs et mutateurs
Laila AMIR 24 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Attributs de classe
1 class A:
2 nb = 0
3 def __init__(self, x): Execution :
4 print("creation objet")
5 self.x = x
A : nb = 0
6 A.nb = A.nb + 1 Partie 1
7 print("A : nb = ", A.nb) creation objet
8 print("Partie 1") A : nb = 1
9 a = A(3)
a : x = 3 nb = 1
10 print("A : nb = ", A.nb)
11 print("a : x = ", a.x, " nb = ", a.nb)
Laila AMIR 26 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Attributs de classe
Execution :
1 print("Partie 2") Partie 2
2 b = A(6) creation objet
3 print("A : nb = ", A.nb) A : nb = 2
4 print("a : x = ", a.x, " nb = ", a.nb)
5 print("b : x = ", b.x, " nb = ", b.nb)
a : x = 3 nb = 2
6 c = A(8) b : x = 6 nb = 2
7 print("Partie 3") creation objet
8 print("A : nb = ", A.nb) Partie 3
9 print("a : x = ", a.x, " nb = ", a.nb)
A : nb = 3
10 print("b : x = ", b.x, " nb = ", b.nb)
11 print("c : x = ", c.x, " nb = ", c.nb) a : x = 3 nb = 3
b : x = 6 nb = 3
c : x = 8 nb = 3
Laila AMIR 27 / 28
Création d’un objet
Définition des attributs
Introduction à POO Définition des méthodes
Les notions de classe et d’objet La notion de constructeur
La notion d’encapsulation
Attributs et méthodes de classe
Méthodes de classe
1 class A:
2 nb = 0
3 def __init__(self):
4 print("creation objet") Execution :
5 A.nb = A.nb + 1 Part1 : nb objets = 0
6 print("il y en a ", A.nb) creation objet
7 @classmethod il y en a 1
8 def get_nb(cls): Part2 : nb objets = 1
9 return A.nb creation objet
10 print("Part1 : nb objets = ", A.get_nb()) il y en a 2
11 a = A() Part3 : nb objets = 2
12 print("Part2 : nb objets = ", A.get_nb())
13 b = A()
14 print("Part3 : nb objets = ", A.get_nb())