diff options
Diffstat (limited to 'semestre 1/informatique/9- Programmation objet.md')
| -rw-r--r-- | semestre 1/informatique/9- Programmation objet.md | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/semestre 1/informatique/9- Programmation objet.md b/semestre 1/informatique/9- Programmation objet.md new file mode 100644 index 0000000..edd1eae --- /dev/null +++ b/semestre 1/informatique/9- Programmation objet.md @@ -0,0 +1,59 @@ +--- +tags: + - sorbonne + - informatique +semestre: 1 +--- +On utilise de plus des langages multi-paradigmes + +Les langages les plus connus en POO sont Java et C++ + +POO permet de créer ses propres types de données + +Une classe est un modèle des objets +```python +class FeuTricolore: + def __init__(self) -> None: + self._couleur = "rouge" + def couleur(self) -> str: + return self._couleur + def change(self) -> None: + if self._couleur == "rouge": + self._couleur = "vert" + elif self._couleur == "vert": + self._couleur = "orange" + elif self._couleur == "orange": + self._couleur = "rouge" + def __rep__(self) -> str: + """est l'équivalent du toString en Java""" + return f"couleur {self._couleur}" + +feu: FeuTricolore = FeuTricolore() +for _ in range(10): + feu.change() + print(f"la couleur du feu est {feu}") +``` + +Pour faire hériter une classe, on la met entre parenthèse, e.g. +```python +class Point: + # ... +class PointColore(Point): + # hérite de Point +``` +cela permet d'avoir accès à toutes les méthodes de la méthode parente + +On représente des classes avec des diagrammes de classes (UML) + +Typage nominal = le nom de la classe détermine le type +|> simple mais limité + +Typage structurel = le nom de la classe et toutes les méthodes dans la classe (alourdie le type) +|> puissant mais lourd + +En python, c'est canardesque : duck-typing en anglais ; le typage est dynamique +|> presque aucun effort mais dangereux + +On vérifie le type avec la fonction `isinstance` + +Voir le cours pour créer des itérables
\ No newline at end of file |
