Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Programmation Orientée Objet (POO)

Avatar for badr mouazen badr mouazen
April 20, 2021
710

Programmation Orientée Objet (POO)

Avatar for badr mouazen

badr mouazen

April 20, 2021
Tweet

Transcript

  1. Programmation procédurale vs Programmation Orientée Objet (POO) Programmation procédurale POO

    • le robinet de l’évier ; • le réservoir du château d’eau ; • un capteur de niveau d’eau avec contacteur dans le réservoir ; • la pompe d’alimentation puisant l’eau dans la rivière. • L’utilisateur ouvre le robinet. • Le robinet relâche la pression et l’eau s’écoule du réservoir à l’évier. • Comme notre utilisateur n’est pas tout seul à consommer, le capteur/flotteur du réservoir arrive à un niveau qui déclenche la pompe de puisage dans la rivière. • L’utilisateur referme le robinet. • Alimenté par la pompe, le réservoir du château d’eau continue à se remplir jusqu’à ce que le capteur/flotteur atteigne le niveau suffisant qui arrêtera la pompe. • Arrêt de la pompe.
  2. Programmation procédurale vs Programmation Orientée Objet (POO) Programmation procédurale -

    Langages POO - Langages • Java • JavaScript • Python • C++ • Visual Basic . NET • Ruby • Scala • PHP • BASIC • C • FORTRAN • Java • Pascal • Assembleur • Cobol
  3. Langages les plus aimés, redoutés et recherchés par les développeurs

    % de développeurs qui développent avec le langage ou la technologie et ont exprimé leur intérêt à continuer à développer avec elle % de développeurs qui développent avec le langage ou la technologie mais n'ont pas exprimé d'intérêt à continuer de le faire % of developers who are not developing with the language or technology but have expressed interest in developing with it Source : stackoverflow
  4. Concepts de base de la POO 1. L’encapsulation 2. L’héritage

    3. Le polymorphisme 4. L’abstraction Variables (privées) Méthodes (publiques) Classe -modèle -vitesse -moteur -vitesseMaximale +conduire() +arreter() +getModele() +setVitesse(nombre) Voiture
  5. Concepts de base de la POO 1. L’encapsulation 2. L’héritage

    3. Le polymorphisme 4. L’abstraction Velo VeloDeMontagne VeloDeRoute VeloTandem
  6. Concepts de base de la POO 1. L’encapsulation 2. L’héritage

    3. Le polymorphisme 4. L’abstraction Velo VeloDeMontagne VeloDeRoute VeloTandem class VeloDeMontagne extends Velo { // les nouveaux champs et méthodes définissant // un vélo de montagne irait ici }
  7. Concepts de base de la POO 1. L’encapsulation 2. L’héritage

    3. Le polymorphisme 1. Surcharge 2. Redéfinition 4. L’abstraction
  8. Concepts de base de la POO 1. L’encapsulation 2. L’héritage

    3. Le polymorphisme 1. Surcharge 2. Redéfinition 4. L’abstraction
  9. Concepts de base de la POO 1. L’encapsulation 2. L’héritage

    3. Le polymorphisme 1. Surcharge 2. Redéfinition 4. L’abstraction Output: 18 88 public class MethodOverloading { static int add(int a, int b) { return a + b; } static int add(int a, int b, int c) { return a + b + c; } public static void main(String[] args) { System.out.println(MethodOverloading.add(2, 16)); System.out.println(MethodOverloading.add(78, 1, 9)); } }
  10. Concepts de base de la POO 1. L’encapsulation 2. L’héritage

    3. Le polymorphisme 1. Surcharge 2. Redéfinition 4. L’abstraction son() Animal son() Chien son() Chat son() Canard bow bow meow meow quak quak
  11. Output: L’animal fait un son Le chien dit: Bow Bow

    Le chat dit: meow meow Le canard dit: quack quack class Animal{ public void son(){ System.out.println("L'animal fait un son"); } } class Chien extends Animal { public void son() { System.out.println("Le chien dit: bow bow"); } } class Chat extends Animal { public void son() { System.out.println("Le chat dit: meow meow"); } } class Canard extends Animal { public void son() { System.out.println("Le canard dit: quack quack"); } } public class PolymorphismeExemple { public static void main(String arg[]) { //Creation des objets Animal animal = new Animal(); //Objet animal Animal chien = new Chien(); //Objet chien Animal chat = new Chat(); //Objet chat Animal canard = new Canard(); //Objet Canard animal.son(); chien.son(); chat.son(); canard.son(); } }
  12. Output: L’animal fait un son Le chien dit: Bow Bow

    Le chat dit: meow meow Le canard dit: quack quack class Animal{ public void son(){ System.out.println("L'animal fait un son"); } } class Chien extends Animal { public void son() { System.out.println("Le chien dit: bow bow"); } } class Chat extends Animal { public void son() { System.out.println("Le chat dit: meow meow"); } } class Canard extends Animal { public void son() { System.out.println("Le canard dit: quack quack"); } } public class PolymorphismeExemple { public static void main(String arg[]) { //Creation des objets Animal animal = new Animal(); //Objet animal Animal chien = new Chien(); //Objet chien Animal chat = new Chat(); //Objet chat Animal canard = new Canard(); //Objet Canard animal.son(); chien.son(); chat.son(); canard.son(); } } https://www.tutorialspoint.com/compile_java_online.php
  13. Concepts de base de la POO 1. L’encapsulation 2. L’héritage

    3. Le polymorphisme 4. L’abstraction ✓ Représenter un ensemble d’objets plus général que les ensembles représentés par les sous-classes de la classe abstraite. ✓ Factoriser les attributs et les méthodes communs aux objets de cet ensemble.
  14. Concepts de base de la POO 1. L’encapsulation 2. L’héritage

    3. Le polymorphisme 4. L’abstraction // Classe abstraite abstract class Animal { // méthode abstraite (n'a pas de corps) public abstract void son(); // méthode standard public void sleep() { System.out.println("Zzz"); } } // Sous-classe (hérite de Animal) class Cochon extends Animal { public void son() { // Le corps de son() est fourni ici System.out.println("Le cochon dit: wee wee"); } } public class MyMainClass { public static void main(String[] args) { Cochon monCochon = new Cochon(); // crée un objet Cochon monCochon.son(); monCochon.sleep(); } } Output: Le cochon dit: wee wee Zzz
  15. Sources • https://waytolearnx.com/ • https://tutorial.eyehunts.com/ • https://docs.oracle.com/javase/tutorial/java/concepts/inheritance.html • https://insights.stackoverflow.com/survey/2019 •

    https://beginnersbook.com/2013/04/runtime-compile-time-polymorphism/ • https://medium.com/@viktor.kukurba/object-oriented-programming-in-javascript-4-encapsulation-4f9165cd26f9 • https://www.w3schools.com/java/java_abstract.asp • https://practice.geeksforgeeks.org/problems/what-is-the-advantage-of-oop • https://www.youtube.com/watch?v=pTB0EiLXUC8 • Apprendre la Programmation Orientée Objet avec le langage Java - (2e édition) - ENI • Java et Eclipse - Développez une application avec Java et Eclipse (2e édition) – ENI • Design Patterns en Java - Les 23 modèles de conception (4e édition) – ENI • Algorithmique - Des bases à la Programmation Orientée Objet en Java (Nouvelle édition) – ENI • Photos : https://www.pngitem.com/