diff --git a/b1-algo/c2-ALGORITHMIQUE-POO.md b/b1-algo/c2-ALGORITHMIQUE-POO.md index 50e4443..d60f4fc 100644 --- a/b1-algo/c2-ALGORITHMIQUE-POO.md +++ b/b1-algo/c2-ALGORITHMIQUE-POO.md @@ -3,4 +3,48 @@ Programtion orientée objet (POO) ou Object oriented programming (OOP). -# \ No newline at end of file +## 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. + + + + +## 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. + + + + +## 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 \ No newline at end of file