Slide 1

Slide 1 text

Programmation Orientée Objet (POO) Notions de base – Application Java Badr MOUAZEN – IUT STID - Carcassonne

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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.

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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 }

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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)); } }

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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(); } }

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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.

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

Avantages de la POO Modularité Simplicité Modifiabilité Extensibilité Réutilisation Maintenabilité

Slide 20

Slide 20 text

Inconvénients de la POO Consommation mémoire Complexité Temps de développement Apprentissage difficile

Slide 21

Slide 21 text

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/