Nous commençons à nous frotter à des notions de développement difficiles. Ne pas hésiter donc à prendre son temps et revenir plusieurs sur une partie de cours.
Il te faudra, à coup sûr, de l'aide en classe pour comprendre tout ce qui suit.
La POO est une manière de programmer (on dit un paradigme quand on veut briller en public…) que l’on retrouve dans de nombreux langages (PHP, Java, C++,… et Python). Elle consiste à créer des objets que l’on utilise ensuite dans des programmes.
Si vous cherchez une définition de l’objet sur Internet, vous tomberez sur des définitions compliquées (le plus souvent, on lit que c’est une structure de données).
Pour être plus simple, prenons un exemple. Dans un jeu vidéo, il y a des personnages. Chaque personnage du jeu :
Dans le programme donc, le personnage sera un objet avec des attributs et des méthodes.
Les développeurs utilisent des mots précis pour définir un objet :
Pour construire notre premier objet, nous allons conserver notre exemple de personnage de jeu vidéo.
Les choses se passent en deux temps :
#coding:utf-8
class Personnage:
def __init__(self,nom_personnage):
self.nombre_vies=3
self.nom=nom_personnage
print("personnage créé")
Comprendre le programme :
#coding:utf-8
class Personnage:
def __init__(self,nom_personnage):
self.nombre_vies=3
self.nom=nom_personnage
print("personnage créé")
# programme principal
Mario = Personnage("Mario")
Luigi = Personnage("Luigi")
Comprendre ce code :
Maintenant que nos objets personnages sont créés, on peut les utiliser et, en particulier, utiliser leurs attributs :
#coding:utf-8
class Personnage:
def __init__(self,nom_personnage):
self.nombre_vies=3
self.nom=nom_personnage
print("personnage créé")
# programme principal
Mario = Personnage("Mario")
Luigi = Personnage("Luigi")
print (Mario.nom,"a",Mario.nombre_vies,"vies")
print (Luigi.nom,"a",Luigi.nombre_vies,"vies")
# si Mario perd une vie, on peut changer la propriété
Mario.nombre_vies-=1
print (Mario.nom,"a",Mario.nombre_vies,"vies")
Comprendre ce code :
On voit directement quelques_uns des avantages de la POO :
Rappel : les méthodes, c’est ce que peut faire notre objet. Ce sont donc des fonctions. Nous en avons déjà vu une : le constructeur est une méthode.
Reprenons avec notre exemple de personnage de jeu.
#coding:utf-8
class Personnage:
# le constructeur
def __init__(self,nom_personnage):
self.nombre_vies=3
self.nom=nom_personnage
# les méthodes
def marcher_droite(self):
print(self.nom,"marche vers la droite")
def marcher_gauche(self):
print(self.nom, "marche vers la gauche")
def sauter(self):
print(self.nom, "saute")
# programme principal
# instanciation
Mario = Personnage("Mario")
# utilisation des méthodes
Mario.marcher_droite()
Mario.marcher_gauche()
Mario.sauter()
Comprendre ce code :
(Dans notre exemple, nos méthodes ne font qu’afficher du texte. Évidemment, dans un vrai jeu, elles contrôleraient le déplacement de notre personnage !)
Particularité de Python (vue déjà dans le constructeur) : quand on appelle une méthode dans la classe, il faut mettre self en paramètre.
A faire :