
# POO 
Programtion orientée objet (POO) ou 
Object oriented programming (OOP).

## les 4 princpes : 
### encapsulation
### héritage
### abstraction
### polymorphisme

## encapsulation :
Un objet est un ensemble de de variables qu'on appelle dans ce cas des `propriétés` et de fonctions qu'on appelle dans ce cas `méthodes`.  

Cet ensemble de méthodes et de propriétés définit l'`interface`  d'un objet, c'est ce qui nous permet d'interagir avec lui.

Seules les méthodes et propriétés `publiques` constituent l'interface

Les objets peuvent également avoir avoir des propriétés et méthodes `privée` qui ne sont alors accessible que à l'intérieur de l'objet.

Un instance d'objet peut se référer à elle même en utilisant le mot clef `ceci`

Enfin et ceci servira pour l'héritage un objet peut avoir des propriétés et méthodes `protégées`, on y reviens plus bas dans le cas de l'héritage.

## héritage
Un fois qu'un objet A existe il est possible d'étendre ou de mofifier partiellement sont comportement pour en faire un objet légèrement différent, qu'on appellera B. On dit alors que l'objet B étends A, ou encore qu'il est enfant de A car il hérite des propriétés et des méthodes de celui-ci.

Et c'est ici que l'on revient au mot clef protégé.

Si un objet B étend un objet A alors B a accès au methodes et propriétés protégées de celui ci. Mais pas au méthodes privées. Et seuls les héritiers de A on accès à ces méthodes protégées.

Un instance d'objet peut se référer à des méthodes de son parent en utilisant le mot clef `parent`



## Nouveaux opérateurs
- -> pour atteindre la proipriété d'un objet ou utiliser une de ces méthodes
- instancede pour savoir si une variable est une instance d'un objet.
- pour 



## Nouvelles instructions

## Mots clefs


## sources : 
- https://medium.com/@kmccurley/object-oriented-programming-encapsulation-polymorphism-inheritance-ebbe24051202
- https://fr.wikipedia.org/wiki/Programmation_orient%C3%A9e_objet
- https://en.wikipedia.org/wiki/Object-oriented_programming