POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmation
Fonctionnelle
Structures
                  Pr...
POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmation
Fonctionnelle
Structures

POO
Historique
Obje...
Plan

POO, h´ritage
      e
                  1   Programmation
Johann Dr´o
         e
                        Programmati...
Pr´-requis
                    e

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e               Prog. imp´ra...
Pr´-requis
                    e

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e               Prog. imp´ra...
Plan

POO, h´ritage
      e
                  1   Programmation
Johann Dr´o
         e
                        Programmati...
Fonctionnelle

POO, h´ritage
      e
                  Fonction math´matique
                               e
Johann Dr´o
...
Fonctionnelle

POO, h´ritage
      e
                  Fonction math´matique
                               e
Johann Dr´o
...
Fonctionnelle

POO, h´ritage
      e
                  Fonction math´matique
                               e
Johann Dr´o
...
Fonctions

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmation     Int´rˆt
                     e...
Fonctions

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmation     Int´rˆt
                     e...
Port´es des variables
                      e

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmatio...
Structures

POO, h´ritage
      e
                  Probl`me
                       e
Johann Dr´o
         e
             ...
Structures

POO, h´ritage
      e
                  Probl`me
                       e
Johann Dr´o
         e
             ...
Structures

POO, h´ritage
      e
                  Probl`me
                       e
Johann Dr´o
         e
             ...
Plan

POO, h´ritage
      e
                  1   Programmation
Johann Dr´o
         e
                        Programmati...
Langages

POO, h´ritage
      e
                      1956   :   Fortran
Johann Dr´o
         e
                      1958...
Concept de base

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmation
Fonctionnelle
Structures

PO...
Types de langages

POO, h´ritage
      e

Johann Dr´o
         e
                  Langages objets
Pr´-requis
  e
        ...
Types de langages

POO, h´ritage
      e

Johann Dr´o
         e
                  Langages objets
Pr´-requis
  e
        ...
Types de langages

POO, h´ritage
      e

Johann Dr´o
         e
                  Langages objets
Pr´-requis
  e
        ...
Classes

POO, h´ritage
      e
                  Mantra
Johann Dr´o
         e
                     classe = moule
Pr´-req...
Exemple

POO, h´ritage
      e

Johann Dr´o
         e
                  Classe “´tudiant”
                          e
Pr´...
Exemple

POO, h´ritage
      e

Johann Dr´o
         e
                  Classe “´tudiant”
                          e
Pr´...
Vocabulaire

POO, h´ritage
      e

Johann Dr´o
         e        Vocabulaire
Pr´-requis
  e                   instance de...
Vocabulaire

POO, h´ritage
      e

Johann Dr´o
         e        Vocabulaire
Pr´-requis
  e                   instance de...
Vocabulaire

POO, h´ritage
      e

Johann Dr´o
         e        Vocabulaire
Pr´-requis
  e                   instance de...
Plan

POO, h´ritage
      e
                  1   Programmation
Johann Dr´o
         e
                        Programmati...
G´n´ralisation
                   e e

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmation
Foncti...
Hierarchie

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmation
Fonctionnelle
Structures

POO
His...
H´ritage
                   e

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e
                             ...
H´ritages
                   e

POO, h´ritage
      e
                                                      Personne
Johan...
Exemple

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e               Java
Programmation
Fonctionnelle
    ...
Composition

POO, h´ritage
      e

Johann Dr´o
         e                                Gène                     Plante
...
Composition

POO, h´ritage
      e

Johann Dr´o
         e                                Gène                     Plante
...
Constructeur

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e
                  Probl`me
                   ...
Constructeur

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e
                  Probl`me
                   ...
Constructeur

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e
                  Probl`me
                   ...
Destructeur

POO, h´ritage
      e

Johann Dr´o
         e        Probl`me
                       e
Pr´-requis
  e        ...
Destructeur

POO, h´ritage
      e

Johann Dr´o
         e        Probl`me
                       e
Pr´-requis
  e        ...
Destructeur

POO, h´ritage
      e

Johann Dr´o
         e        Probl`me
                       e
Pr´-requis
  e        ...
M´thodes virtuelles
                   e

POO, h´ritage
      e

Johann Dr´o
         e
                  Personne
Pr´-req...
M´thodes virtuelles
                   e

POO, h´ritage
      e

Johann Dr´o
         e
                  Personne
Pr´-req...
M´thodes virtuelles
                   e

POO, h´ritage
      e

Johann Dr´o
         e
                  Personne
Pr´-req...
Exemple virtuel

POO, h´ritage
      e

Johann Dr´o
         e
                  C++
Pr´-requis
  e

Programmation     cla...
Interface

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmation
                   D´finition
     ...
Interface

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmation
                   D´finition
     ...
Interface & collections

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e               Probl`me
            ...
Interface & collections

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e               Probl`me
            ...
Interface & collections

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e               Probl`me
            ...
Interface & collections

POO, h´ritage
      e

Johann Dr´o
         e
                  Attention
Pr´-requis
  e
        ...
Interface & collections

POO, h´ritage
      e

Johann Dr´o
         e
                  Attention
Pr´-requis
  e
        ...
Interface & collections

POO, h´ritage
      e

Johann Dr´o
         e
                  Attention
Pr´-requis
  e
        ...
Plan

POO, h´ritage
      e
                  1   Programmation
Johann Dr´o
         e
                        Programmati...
Membres statiques

POO, h´ritage
      e

Johann Dr´o
         e
                  ´
                  Etudiant
Pr´-requis...
Membres statiques

POO, h´ritage
      e

Johann Dr´o
         e
                  ´
                  Etudiant
Pr´-requis...
Membres statiques

POO, h´ritage
      e

Johann Dr´o
         e
                  ´
                  Etudiant
Pr´-requis...
Exemple

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmation
                  Python
Fonctionnel...
Polymorphisme

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmation
Fonctionnelle
Structures
     ...
Exemple

POO, h´ritage
      e
                  C++
Johann Dr´o
         e
                  class Etudiant {
Pr´-requis
...
Exemple

POO, h´ritage
      e
                  C++
Johann Dr´o
         e
                  class Etudiant {
Pr´-requis
...
Exceptions

POO, h´ritage
      e
                  Exception = erreur
Johann Dr´o
         e
                      Probl`...
Exceptions

POO, h´ritage
      e
                  Exception = erreur
Johann Dr´o
         e
                      Probl`...
Exceptions

POO, h´ritage
      e
                  Exception = erreur
Johann Dr´o
         e
                      Probl`...
Exemple

POO, h´ritage
      e

Johann Dr´o
         e        Python
Pr´-requis
  e               if( a == 1 ) :
Programma...
Exemple

POO, h´ritage
      e

Johann Dr´o
         e        Python
Pr´-requis
  e               if( a == 1 ) :
Programma...
M´ta-classes
                   e

POO, h´ritage
      e

Johann Dr´o
         e
                  M´ta-classes
          ...
M´ta-classes
                   e

POO, h´ritage
      e

Johann Dr´o
         e
                  M´ta-classes
          ...
Ramasse-miettes

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmation
                  C++
Foncti...
Ramasse-miettes

POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmation
                  C++
Foncti...
POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmation
Fonctionnelle
Structures

POO
Historique
Obje...
POO, h´ritage
      e

Johann Dr´o
         e

Pr´-requis
  e

Programmation
Fonctionnelle
Structures

POO
Historique
Obje...
Prochain SlideShare
Chargement dans…5
×

Introduction à la POO - cours 1h

4 676 vues

Publié le

Cours d'une heure sur la programmation orientée, orienté sur l'héritage. Tentative de présenter les choses un peu différemment d'un cours académique standard.

Publié dans : Formation, Technologie
1 commentaire
3 j’aime
Statistiques
Remarques
  • Dans le transparent 'Polymorphisme' (59), la signature en C++ ne prend pas en compte le type de renvoi mais uniquement les types des arguments d'une fonction.

    void foo() {}
    double foo(int) {}

    donne comme signature (pour le compilateur gcc):

    _Z3fooi
    _Z3foov

    Ceci a été corrigé en objectif C, mais à vrai dire je pense que tu ne visais pas de langage en particulier si ce n'est les langages objets en général.
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
Aucun téléchargement
Vues
Nombre de vues
4 676
Sur SlideShare
0
Issues des intégrations
0
Intégrations
8
Actions
Partages
0
Téléchargements
169
Commentaires
1
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Introduction à la POO - cours 1h

  1. 1. POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation Fonctionnelle Structures Programmation orient´e objet : l’h´ritage e e POO Historique Objet Classe H´ritage e Johann Dr´o e D´finition e VS composition Constructeurs Abstraction Concepts 28 septembre 2007 avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  2. 2. POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation Fonctionnelle Structures POO Historique Objet Classe H´ritage e D´finition e VS composition Constructeurs Abstraction Concepts avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  3. 3. Plan POO, h´ritage e 1 Programmation Johann Dr´o e Programmation fonctionnelle Structures Pr´-requis e 2 Programmation orient´e objet e Programmation Fonctionnelle Historique Structures Objet POO Historique Classe Objet Classe 3 H´ritage e H´ritage e D´finition e D´finition e VS composition VS composition Constructeurs Abstraction Constructeurs & destructeurs Concepts avanc´s e Abstraction Membres statiques 4 Concepts avanc´s e Polymorphisme Exceptions Membres statiques M´ta-classes e Ramasse-miettes Polymorphisme Fin Exceptions
  4. 4. Pr´-requis e POO, h´ritage e Johann Dr´o e Pr´-requis e Prog. imp´rative e Programmation Fonctionnelle Variables Structures POO Branchements conditionnels Historique Objet Boucles Classe H´ritage e M´moire (pointeurs) e D´finition e VS composition Constructeurs Abstraction Introduction Concepts Cours pr´liminaire e avanc´s e Membres statiques approfondissements. . . Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  5. 5. Pr´-requis e POO, h´ritage e Johann Dr´o e Pr´-requis e Prog. imp´rative e Programmation Fonctionnelle Variables Structures POO Branchements conditionnels Historique Objet Boucles Classe H´ritage e M´moire (pointeurs) e D´finition e VS composition Constructeurs Abstraction Introduction Concepts Cours pr´liminaire e avanc´s e Membres statiques approfondissements. . . Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  6. 6. Plan POO, h´ritage e 1 Programmation Johann Dr´o e Programmation fonctionnelle Structures Pr´-requis e 2 Programmation orient´e objet e Programmation Fonctionnelle Historique Structures Objet POO Historique Classe Objet Classe 3 H´ritage e H´ritage e D´finition e D´finition e VS composition VS composition Constructeurs Abstraction Constructeurs & destructeurs Concepts avanc´s e Abstraction Membres statiques 4 Concepts avanc´s e Polymorphisme Exceptions Membres statiques M´ta-classes e Ramasse-miettes Polymorphisme Fin Exceptions
  7. 7. Fonctionnelle POO, h´ritage e Fonction math´matique e Johann Dr´o e f (x) = x 2 Pr´-requis e Programmation y = f (x) Fonctionnelle Structures POO En Basic Historique Objet 1 GOTO 4 Classe 2 y=x*x H´ritage e D´finition e 3 GOTO 6 VS composition Constructeurs 4 x=2 Abstraction 5 GOTO 2 Concepts avanc´s e 6 PRINT y Membres statiques Polymorphisme Exceptions En C M´ta-classes e Ramasse-miettes double f( double x ) { return x*x ; } Fin double x = 2.0 ; double y = f( x ) ;
  8. 8. Fonctionnelle POO, h´ritage e Fonction math´matique e Johann Dr´o e f (x) = x 2 Pr´-requis e Programmation y = f (x) Fonctionnelle Structures POO En Basic Historique Objet 1 GOTO 4 Classe 2 y=x*x H´ritage e D´finition e 3 GOTO 6 VS composition Constructeurs 4 x=2 Abstraction 5 GOTO 2 Concepts avanc´s e 6 PRINT y Membres statiques Polymorphisme Exceptions En C M´ta-classes e Ramasse-miettes double f( double x ) { return x*x ; } Fin double x = 2.0 ; double y = f( x ) ;
  9. 9. Fonctionnelle POO, h´ritage e Fonction math´matique e Johann Dr´o e f (x) = x 2 Pr´-requis e Programmation y = f (x) Fonctionnelle Structures POO En Basic Historique Objet 1 GOTO 4 Classe 2 y=x*x H´ritage e D´finition e 3 GOTO 6 VS composition Constructeurs 4 x=2 Abstraction 5 GOTO 2 Concepts avanc´s e 6 PRINT y Membres statiques Polymorphisme Exceptions En C M´ta-classes e Ramasse-miettes double f( double x ) { return x*x ; } Fin double x = 2.0 ; double y = f( x ) ;
  10. 10. Fonctions POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation Int´rˆt ee Fonctionnelle Structures structure de donn´es + fonctions e POO Historique biblioth`ques e Objet Classe H´ritage e D´finition e Cons´quences amusantes e VS composition Constructeurs y = f( g( x ) ) ; Abstraction Concepts double f( double x ) { return f(x) ; } avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  11. 11. Fonctions POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation Int´rˆt ee Fonctionnelle Structures structure de donn´es + fonctions e POO Historique biblioth`ques e Objet Classe H´ritage e D´finition e Cons´quences amusantes e VS composition Constructeurs y = f( g( x ) ) ; Abstraction Concepts double f( double x ) { return f(x) ; } avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  12. 12. Port´es des variables e POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation Port´es e Fonctionnelle Structures double a ; POO Historique double f( double b ) { Objet Classe printf(a) ; H´ritage e printf(b) ; D´finition e VS composition return b+1 ; Constructeurs Abstraction } Concepts printf(b) ; avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  13. 13. Structures POO, h´ritage e Probl`me e Johann Dr´o e a,b = f(x,y,z) ; Pr´-requis e Programmation D´finition e Fonctionnelle Structures struct Type{ POO Historique int a ; Objet Classe char b ; H´ritage e }; D´finition e VS composition Constructeurs Abstraction Utilisation Concepts avanc´s e Type f( int x, int y, int z ) { Membres statiques Type t ; t.a=x*y ; t.b=x+y ; Polymorphisme Exceptions return t ; M´ta-classes e Ramasse-miettes } Fin Type v = f(x,y,z) ;
  14. 14. Structures POO, h´ritage e Probl`me e Johann Dr´o e a,b = f(x,y,z) ; Pr´-requis e Programmation D´finition e Fonctionnelle Structures struct Type{ POO Historique int a ; Objet Classe char b ; H´ritage e }; D´finition e VS composition Constructeurs Abstraction Utilisation Concepts avanc´s e Type f( int x, int y, int z ) { Membres statiques Type t ; t.a=x*y ; t.b=x+y ; Polymorphisme Exceptions return t ; M´ta-classes e Ramasse-miettes } Fin Type v = f(x,y,z) ;
  15. 15. Structures POO, h´ritage e Probl`me e Johann Dr´o e a,b = f(x,y,z) ; Pr´-requis e Programmation D´finition e Fonctionnelle Structures struct Type{ POO Historique int a ; Objet Classe char b ; H´ritage e }; D´finition e VS composition Constructeurs Abstraction Utilisation Concepts avanc´s e Type f( int x, int y, int z ) { Membres statiques Type t ; t.a=x*y ; t.b=x+y ; Polymorphisme Exceptions return t ; M´ta-classes e Ramasse-miettes } Fin Type v = f(x,y,z) ;
  16. 16. Plan POO, h´ritage e 1 Programmation Johann Dr´o e Programmation fonctionnelle Structures Pr´-requis e 2 Programmation orient´e objet e Programmation Fonctionnelle Historique Structures Objet POO Historique Classe Objet Classe 3 H´ritage e H´ritage e D´finition e D´finition e VS composition VS composition Constructeurs Abstraction Constructeurs & destructeurs Concepts avanc´s e Abstraction Membres statiques 4 Concepts avanc´s e Polymorphisme Exceptions Membres statiques M´ta-classes e Ramasse-miettes Polymorphisme Fin Exceptions
  17. 17. Langages POO, h´ritage e 1956 : Fortran Johann Dr´o e 1958 : Lisp Pr´-requis e 1964 : Basic Programmation Fonctionnelle 1966 : Simula Structures POO 1976 : SmallTalk Historique Objet 1983 : C++, Objective C Classe 1986 : Eiffel H´ritage e D´finition e 1990 : Fortran quasi-objet VS composition Constructeurs Abstraction 1991 : Visual Basic, Python Concepts 1993 : Ruby avanc´s e Membres statiques 1994 : Perl objet Polymorphisme Exceptions 1995 : Java M´ta-classes e Ramasse-miettes 2000 : PHP objet Fin 2003 : Fortran objet
  18. 18. Concept de base POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation Fonctionnelle Structures POO Historique Objet Classe H´ritage e D´finition e VS composition Constructeurs Abstraction Concepts avanc´s e Pourquoi ? Membres statiques Polymorphisme repr´sentation directe, intuitive e Exceptions M´ta-classes e r´utilisation de code e Ramasse-miettes Fin d´marrage rapide e
  19. 19. Types de langages POO, h´ritage e Johann Dr´o e Langages objets Pr´-requis e d’acteurs (donn´es locales, filtrage de message) e Programmation de frames (gestion de connaissance, prototype) Fonctionnelle Structures de classes (instances, h´ritage, polymorphisme, . . .) e POO Historique Objet Classe H´ritage e D´finition e VS composition Constructeurs Abstraction Concepts avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  20. 20. Types de langages POO, h´ritage e Johann Dr´o e Langages objets Pr´-requis e d’acteurs (donn´es locales, filtrage de message) e Programmation de frames (gestion de connaissance, prototype) Fonctionnelle Structures de classes (instances, h´ritage, polymorphisme, . . .) e POO Historique Objet Classe H´ritage e D´finition e VS composition Constructeurs Abstraction Concepts avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  21. 21. Types de langages POO, h´ritage e Johann Dr´o e Langages objets Pr´-requis e d’acteurs (donn´es locales, filtrage de message) e Programmation de frames (gestion de connaissance, prototype) Fonctionnelle Structures de classes (instances, h´ritage, polymorphisme, . . .) e POO Historique Objet Classe H´ritage e D´finition e VS composition Constructeurs Abstraction Concepts avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  22. 22. Classes POO, h´ritage e Mantra Johann Dr´o e classe = moule Pr´-requis e d´mouler = instancier e Programmation Fonctionnelle Structures POO Historique Objet Classe H´ritage e D´finition e VS composition Constructeurs Abstraction Concepts avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  23. 23. Exemple POO, h´ritage e Johann Dr´o e Classe “´tudiant” e Pr´-requis e age Programmation Fonctionnelle Structures sexe POO cheveux Historique Objet Classe ´tat e H´ritage e D´finition e VS composition Objet “´tudiant” e Constructeurs Abstraction age = 20 Concepts avanc´s e sexe = F Membres statiques cheveux = blonds Polymorphisme Exceptions M´ta-classes e ´tat = endormi e Ramasse-miettes Fin
  24. 24. Exemple POO, h´ritage e Johann Dr´o e Classe “´tudiant” e Pr´-requis e age Programmation Fonctionnelle Structures sexe POO cheveux Historique Objet Classe ´tat e H´ritage e D´finition e VS composition Objet “´tudiant” e Constructeurs Abstraction age = 20 Concepts avanc´s e sexe = F Membres statiques cheveux = blonds Polymorphisme Exceptions M´ta-classes e ´tat = endormi e Ramasse-miettes Fin
  25. 25. Vocabulaire POO, h´ritage e Johann Dr´o e Vocabulaire Pr´-requis e instance de classe = objet Programmation Fonctionnelle variable membre d’une classe = attribut Structures fonction membre d’une classe = m´thode e POO Historique Objet Classe H´ritage e D´finition e VS composition Constructeurs Abstraction Concepts avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Encapsulation Ramasse-miettes Fin
  26. 26. Vocabulaire POO, h´ritage e Johann Dr´o e Vocabulaire Pr´-requis e instance de classe = objet Programmation Fonctionnelle variable membre d’une classe = attribut Structures fonction membre d’une classe = m´thode e POO Historique Objet Classe H´ritage e D´finition e VS composition Constructeurs Abstraction Concepts avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Encapsulation Ramasse-miettes Fin
  27. 27. Vocabulaire POO, h´ritage e Johann Dr´o e Vocabulaire Pr´-requis e instance de classe = objet Programmation Fonctionnelle variable membre d’une classe = attribut Structures fonction membre d’une classe = m´thode e POO Historique Objet Classe H´ritage e D´finition e VS composition Constructeurs Abstraction Concepts avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Encapsulation Ramasse-miettes Fin
  28. 28. Plan POO, h´ritage e 1 Programmation Johann Dr´o e Programmation fonctionnelle Structures Pr´-requis e 2 Programmation orient´e objet e Programmation Fonctionnelle Historique Structures Objet POO Historique Classe Objet Classe 3 H´ritage e H´ritage e D´finition e D´finition e VS composition VS composition Constructeurs Abstraction Constructeurs & destructeurs Concepts avanc´s e Abstraction Membres statiques 4 Concepts avanc´s e Polymorphisme Exceptions Membres statiques M´ta-classes e Ramasse-miettes Polymorphisme Fin Exceptions
  29. 29. G´n´ralisation e e POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation Fonctionnelle Structures POO Historique Objet Classe H´ritage e D´finition e VS composition Constructeurs Abstraction Concepts avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  30. 30. Hierarchie POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation Fonctionnelle Structures POO Historique Objet Classe H´ritage e D´finition e VS composition Constructeurs Abstraction Concepts avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  31. 31. H´ritage e POO, h´ritage e Johann Dr´o e Pr´-requis e Personne Programmation #age Fonctionnelle #sexe Structures #cheveux POO +opérer() Historique +teinter() Objet Classe H´ritage e D´finition e VS composition Constructeurs Étudiant Enseignant Abstraction #état #tolérance Concepts +endormir() +enseigner() avanc´s e +réveiller() +craquer() Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  32. 32. H´ritages e POO, h´ritage e Personne Johann Dr´o e Pr´-requis e Programmation Fonctionnelle Employé Étudiant Structures POO Historique Objet Classe Ingénieur Chercheur H´ritage e D´finition e VS composition Constructeurs Abstraction Concepts Doctorant avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Simple Ramasse-miettes Fin Multiple (` ´viter si possible) ae
  33. 33. Exemple POO, h´ritage e Johann Dr´o e Pr´-requis e Java Programmation Fonctionnelle class Personne { Structures void parler() { POO Historique System.out.println (quot;Bonjourquot;) ; Objet Classe } H´ritage e } D´finition e VS composition class Etudiant extends Personne {} Constructeurs Abstraction Concepts avanc´s e Etudiant e = new Etudiant() ; Membres statiques e.parler() ; Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  34. 34. Composition POO, h´ritage e Johann Dr´o e Gène Plante +séquence +génome Pr´-requis e +transcrire() Programmation Fonctionnelle Structures POO Historique Cry1(A) Objet Classe +résistance OGM H´ritage e D´finition e +cry1(A) VS composition Barstar +barstar Constructeurs +antisens +inhibition Abstraction Concepts avanc´s e Antisens Membres +blocage statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Pr´f´rer l’h´ritage ee e Fin
  35. 35. Composition POO, h´ritage e Johann Dr´o e Gène Plante +séquence +génome Pr´-requis e +transcrire() Programmation Fonctionnelle Structures POO Historique Cry1(A) Objet Classe +résistance OGM H´ritage e D´finition e +cry1(A) VS composition Barstar +barstar Constructeurs +antisens +inhibition Abstraction Concepts avanc´s e Antisens Membres +blocage statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Pr´f´rer l’h´ritage ee e Fin
  36. 36. Constructeur POO, h´ritage e Johann Dr´o e Pr´-requis e Probl`me e Programmation Fonctionnelle Initialiser les attributs ` l’instanciation ? a Structures POO Historique Python Objet Classe e2 = Etudiant(age = 29) H´ritage e D´finition e VS composition Constructeurs Abstraction class Etudiant : Concepts def init ( self, mon age ) : avanc´s e Membres self.age = mon age statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  37. 37. Constructeur POO, h´ritage e Johann Dr´o e Pr´-requis e Probl`me e Programmation Fonctionnelle Initialiser les attributs ` l’instanciation ? a Structures POO Historique Python Objet Classe e2 = Etudiant(age = 29) H´ritage e D´finition e VS composition Constructeurs Abstraction class Etudiant : Concepts def init ( self, mon age ) : avanc´s e Membres self.age = mon age statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  38. 38. Constructeur POO, h´ritage e Johann Dr´o e Pr´-requis e Probl`me e Programmation Fonctionnelle Initialiser les attributs ` l’instanciation ? a Structures POO Historique Python Objet Classe e2 = Etudiant(age = 29) H´ritage e D´finition e VS composition Constructeurs Abstraction class Etudiant : Concepts def init ( self, mon age ) : avanc´s e Membres self.age = mon age statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  39. 39. Destructeur POO, h´ritage e Johann Dr´o e Probl`me e Pr´-requis e Effectuer des op´rations en fin de vie ? e Programmation Fonctionnelle Structures Python POO Historique def f( x ) : Objet Classe e = Etudiant() H´ritage e print ”Hors de port´e” e D´finition e VS composition f(1) Constructeurs Abstraction Concepts avanc´s e class Etudiant : Membres statiques def del ( self ) : Polymorphisme Exceptions self.reveiller() M´ta-classes e Ramasse-miettes print ”Au revoir” Fin
  40. 40. Destructeur POO, h´ritage e Johann Dr´o e Probl`me e Pr´-requis e Effectuer des op´rations en fin de vie ? e Programmation Fonctionnelle Structures Python POO Historique def f( x ) : Objet Classe e = Etudiant() H´ritage e print ”Hors de port´e” e D´finition e VS composition f(1) Constructeurs Abstraction Concepts avanc´s e class Etudiant : Membres statiques def del ( self ) : Polymorphisme Exceptions self.reveiller() M´ta-classes e Ramasse-miettes print ”Au revoir” Fin
  41. 41. Destructeur POO, h´ritage e Johann Dr´o e Probl`me e Pr´-requis e Effectuer des op´rations en fin de vie ? e Programmation Fonctionnelle Structures Python POO Historique def f( x ) : Objet Classe e = Etudiant() H´ritage e print ”Hors de port´e” e D´finition e VS composition f(1) Constructeurs Abstraction Concepts avanc´s e class Etudiant : Membres statiques def del ( self ) : Polymorphisme Exceptions self.reveiller() M´ta-classes e Ramasse-miettes print ”Au revoir” Fin
  42. 42. M´thodes virtuelles e POO, h´ritage e Johann Dr´o e Personne Pr´-requis e m´moire == 10 e Programmation Fonctionnelle apprendre() Structures POO Historique Objet ´ Etudiant Classe H´ritage e m´moire == 1 e D´finition e VS composition apprendre() # cours Constructeurs Abstraction Concepts avanc´s e Enseignant Membres statiques m´moire == 20 e Polymorphisme Exceptions M´ta-classes e apprendre() # formation Ramasse-miettes Fin
  43. 43. M´thodes virtuelles e POO, h´ritage e Johann Dr´o e Personne Pr´-requis e m´moire == 10 e Programmation Fonctionnelle apprendre() Structures POO Historique Objet ´ Etudiant Classe H´ritage e m´moire == 1 e D´finition e VS composition apprendre() # cours Constructeurs Abstraction Concepts avanc´s e Enseignant Membres statiques m´moire == 20 e Polymorphisme Exceptions M´ta-classes e apprendre() # formation Ramasse-miettes Fin
  44. 44. M´thodes virtuelles e POO, h´ritage e Johann Dr´o e Personne Pr´-requis e m´moire == 10 e Programmation Fonctionnelle apprendre() Structures POO Historique Objet ´ Etudiant Classe H´ritage e m´moire == 1 e D´finition e VS composition apprendre() # cours Constructeurs Abstraction Concepts avanc´s e Enseignant Membres statiques m´moire == 20 e Polymorphisme Exceptions M´ta-classes e apprendre() # formation Ramasse-miettes Fin
  45. 45. Exemple virtuel POO, h´ritage e Johann Dr´o e C++ Pr´-requis e Programmation class Personne { Fonctionnelle Structures public virtual void apprendre() = 0 ; POO }; Historique Objet class Etudiant : public Personne { Classe public void apprendre() { H´ritage e D´finition e this− >photocopier cours() ; VS composition Constructeurs } Abstraction }; Concepts avanc´s e Membres statiques Polymorphisme Classe abstraite Exceptions M´ta-classes e Ramasse-miettes Fin
  46. 46. Interface POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation D´finition e Fonctionnelle Structures cas particulier de classe abstraite POO toutes m´thodes virtuelles pures e Historique Objet Classe H´ritage e Personne D´finition e VS composition manger() Constructeurs Abstraction apprendre() Concepts avanc´s e cr´er() e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  47. 47. Interface POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation D´finition e Fonctionnelle Structures cas particulier de classe abstraite POO toutes m´thodes virtuelles pures e Historique Objet Classe H´ritage e Personne D´finition e VS composition manger() Constructeurs Abstraction apprendre() Concepts avanc´s e cr´er() e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  48. 48. Interface & collections POO, h´ritage e Johann Dr´o e Pr´-requis e Probl`me e Programmation salle de cours Fonctionnelle Structures collection de personnes POO Historique classes diff´rentes e Objet Classe H´ritage e Id´alement e D´finition e VS composition Constructeurs ? c = { new Etudiant(), new Etudiant(), new Enseignant() } ; Abstraction Concepts avanc´s e En pratique (C++) Membres statiques Polymorphisme list<Personne*> c ; Exceptions M´ta-classes e Ramasse-miettes Fin
  49. 49. Interface & collections POO, h´ritage e Johann Dr´o e Pr´-requis e Probl`me e Programmation salle de cours Fonctionnelle Structures collection de personnes POO Historique classes diff´rentes e Objet Classe H´ritage e Id´alement e D´finition e VS composition Constructeurs ? c = { new Etudiant(), new Etudiant(), new Enseignant() } ; Abstraction Concepts avanc´s e En pratique (C++) Membres statiques Polymorphisme list<Personne*> c ; Exceptions M´ta-classes e Ramasse-miettes Fin
  50. 50. Interface & collections POO, h´ritage e Johann Dr´o e Pr´-requis e Probl`me e Programmation salle de cours Fonctionnelle Structures collection de personnes POO Historique classes diff´rentes e Objet Classe H´ritage e Id´alement e D´finition e VS composition Constructeurs ? c = { new Etudiant(), new Etudiant(), new Enseignant() } ; Abstraction Concepts avanc´s e En pratique (C++) Membres statiques Polymorphisme list<Personne*> c ; Exceptions M´ta-classes e Ramasse-miettes Fin
  51. 51. Interface & collections POO, h´ritage e Johann Dr´o e Attention Pr´-requis e acc`s uniquement aux m´thodes de l’interface e e Programmation Fonctionnelle Structures m´thodes des sous-classes inaccessibles e POO Historique Objet c[0]− >apprendre() ; // OUI Classe H´ritage e c[2]− >boire() ; // NON D´finition e VS composition Constructeurs Abstraction Interfaces Concepts avanc´s e “quoi” Membres statiques sous-classes = “comment” Polymorphisme Exceptions M´ta-classes e saine habitude Ramasse-miettes Fin
  52. 52. Interface & collections POO, h´ritage e Johann Dr´o e Attention Pr´-requis e acc`s uniquement aux m´thodes de l’interface e e Programmation Fonctionnelle Structures m´thodes des sous-classes inaccessibles e POO Historique Objet c[0]− >apprendre() ; // OUI Classe H´ritage e c[2]− >boire() ; // NON D´finition e VS composition Constructeurs Abstraction Interfaces Concepts avanc´s e “quoi” Membres statiques sous-classes = “comment” Polymorphisme Exceptions M´ta-classes e saine habitude Ramasse-miettes Fin
  53. 53. Interface & collections POO, h´ritage e Johann Dr´o e Attention Pr´-requis e acc`s uniquement aux m´thodes de l’interface e e Programmation Fonctionnelle Structures m´thodes des sous-classes inaccessibles e POO Historique Objet c[0]− >apprendre() ; // OUI Classe H´ritage e c[2]− >boire() ; // NON D´finition e VS composition Constructeurs Abstraction Interfaces Concepts avanc´s e “quoi” Membres statiques sous-classes = “comment” Polymorphisme Exceptions M´ta-classes e saine habitude Ramasse-miettes Fin
  54. 54. Plan POO, h´ritage e 1 Programmation Johann Dr´o e Programmation fonctionnelle Structures Pr´-requis e 2 Programmation orient´e objet e Programmation Fonctionnelle Historique Structures Objet POO Historique Classe Objet Classe 3 H´ritage e H´ritage e D´finition e D´finition e VS composition VS composition Constructeurs Abstraction Constructeurs & destructeurs Concepts avanc´s e Abstraction Membres statiques 4 Concepts avanc´s e Polymorphisme Exceptions Membres statiques M´ta-classes e Ramasse-miettes Polymorphisme Fin Exceptions
  55. 55. Membres statiques POO, h´ritage e Johann Dr´o e ´ Etudiant Pr´-requis e age Programmation Fonctionnelle Structures sexe POO esprit de corps Historique Objet Classe H´ritage e Attribut statique (= de classe) D´finition e VS composition Entit´ unique pour tous les objets e Constructeurs Abstraction Modification simultan´e e Concepts avanc´s e Membres statiques M´thode statique (= de classe) e Polymorphisme Exceptions M´ta-classes e Ne peut utiliser les attributs Ramasse-miettes Fin
  56. 56. Membres statiques POO, h´ritage e Johann Dr´o e ´ Etudiant Pr´-requis e age Programmation Fonctionnelle Structures sexe POO esprit de corps Historique Objet Classe H´ritage e Attribut statique (= de classe) D´finition e VS composition Entit´ unique pour tous les objets e Constructeurs Abstraction Modification simultan´e e Concepts avanc´s e Membres statiques M´thode statique (= de classe) e Polymorphisme Exceptions M´ta-classes e Ne peut utiliser les attributs Ramasse-miettes Fin
  57. 57. Membres statiques POO, h´ritage e Johann Dr´o e ´ Etudiant Pr´-requis e age Programmation Fonctionnelle Structures sexe POO esprit de corps Historique Objet Classe H´ritage e Attribut statique (= de classe) D´finition e VS composition Entit´ unique pour tous les objets e Constructeurs Abstraction Modification simultan´e e Concepts avanc´s e Membres statiques M´thode statique (= de classe) e Polymorphisme Exceptions M´ta-classes e Ne peut utiliser les attributs Ramasse-miettes Fin
  58. 58. Exemple POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation Python Fonctionnelle Structures class Etudiant : POO esprit corps = 0 Historique Objet Classe def init (self) : H´ritage e D´finition e self.age = 10 VS composition Constructeurs Abstraction Concepts print self.age avanc´s e print Etudiant.esprit corps Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  59. 59. Polymorphisme POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation Fonctionnelle Structures D´finition e POO Historique Objet surcharge Classe plusieurs m´thodes de mˆme nom e e H´ritage e D´finition e VS composition signature = types de renvoi & arguments Constructeurs Abstraction Concepts avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  60. 60. Exemple POO, h´ritage e C++ Johann Dr´o e class Etudiant { Pr´-requis e int age ; Programmation Fonctionnelle bool sexe ; Structures void Etudiant() POO Historique : age(20), sexe(1) {} Objet Classe void Etudiant( int age ) H´ritage e : age( age), sexe(1) {} D´finition e VS composition void Etudiant( int age, bool sexe ) Constructeurs Abstraction : age( age), sexe( sexe) {} Concepts } avanc´s e Membres statiques Polymorphisme Exceptions e = new Etudiant() ; M´ta-classes e Ramasse-miettes e = new Etudiant( 20 ) ; Fin e = new Etudiant( 20, 1 ) ;
  61. 61. Exemple POO, h´ritage e C++ Johann Dr´o e class Etudiant { Pr´-requis e int age ; Programmation Fonctionnelle bool sexe ; Structures void Etudiant() POO Historique : age(20), sexe(1) {} Objet Classe void Etudiant( int age ) H´ritage e : age( age), sexe(1) {} D´finition e VS composition void Etudiant( int age, bool sexe ) Constructeurs Abstraction : age( age), sexe( sexe) {} Concepts } avanc´s e Membres statiques Polymorphisme Exceptions e = new Etudiant() ; M´ta-classes e Ramasse-miettes e = new Etudiant( 20 ) ; Fin e = new Etudiant( 20, 1 ) ;
  62. 62. Exceptions POO, h´ritage e Exception = erreur Johann Dr´o e Probl`mes avec les valeurs de retour e Pr´-requis e Programmation Syst`me de “lancement” d’exceptions e Fonctionnelle Structures Exception = objet (informations sur l’erreur) POO Historique Objet Classe ` A l’ancienne Gène Plante H´ritage e if( f( g( h( x ) ) ) ) : +séquence +génome D´finition e +transcrire() VS composition print ”ok” Constructeurs Abstraction Concepts Cry1(A) avanc´s e Proprement +résistance OGM Membres statiques try : Barstar +cry1(A) +barstar Polymorphisme Exceptions y = f( g( h( x ) ) ) ) +inhibition +antisens M´ta-classes e Ramasse-miettes except Error,e : Antisens +blocage Fin print e
  63. 63. Exceptions POO, h´ritage e Exception = erreur Johann Dr´o e Probl`mes avec les valeurs de retour e Pr´-requis e Programmation Syst`me de “lancement” d’exceptions e Fonctionnelle Structures Exception = objet (informations sur l’erreur) POO Historique Objet Classe ` A l’ancienne Gène Plante H´ritage e if( f( g( h( x ) ) ) ) : +séquence +génome D´finition e +transcrire() VS composition print ”ok” Constructeurs Abstraction Concepts Cry1(A) avanc´s e Proprement +résistance OGM Membres statiques try : Barstar +cry1(A) +barstar Polymorphisme Exceptions y = f( g( h( x ) ) ) ) +inhibition +antisens M´ta-classes e Ramasse-miettes except Error,e : Antisens +blocage Fin print e
  64. 64. Exceptions POO, h´ritage e Exception = erreur Johann Dr´o e Probl`mes avec les valeurs de retour e Pr´-requis e Programmation Syst`me de “lancement” d’exceptions e Fonctionnelle Structures Exception = objet (informations sur l’erreur) POO Historique Objet Classe ` A l’ancienne Gène Plante H´ritage e if( f( g( h( x ) ) ) ) : +séquence +génome D´finition e +transcrire() VS composition print ”ok” Constructeurs Abstraction Concepts Cry1(A) avanc´s e Proprement +résistance OGM Membres statiques try : Barstar +cry1(A) +barstar Polymorphisme Exceptions y = f( g( h( x ) ) ) ) +inhibition +antisens M´ta-classes e Ramasse-miettes except Error,e : Antisens +blocage Fin print e
  65. 65. Exemple POO, h´ritage e Johann Dr´o e Python Pr´-requis e if( a == 1 ) : Programmation raise RuntimeError(”Pas bien”) Fonctionnelle Structures else : POO ... Historique Objet Classe try : H´ritage e D´finition e variable VS composition Constructeurs except NameError : Abstraction Concepts print ”N’existe pas” avanc´s e else : Membres statiques Polymorphisme print ”Existe :”, variable Exceptions M´ta-classes e finally : Ramasse-miettes print ”Test´” e Fin
  66. 66. Exemple POO, h´ritage e Johann Dr´o e Python Pr´-requis e if( a == 1 ) : Programmation raise RuntimeError(”Pas bien”) Fonctionnelle Structures else : POO ... Historique Objet Classe try : H´ritage e D´finition e variable VS composition Constructeurs except NameError : Abstraction Concepts print ”N’existe pas” avanc´s e else : Membres statiques Polymorphisme print ”Existe :”, variable Exceptions M´ta-classes e finally : Ramasse-miettes print ”Test´” e Fin
  67. 67. M´ta-classes e POO, h´ritage e Johann Dr´o e M´ta-classes e Pr´-requis e M´ta-classes = presse pour fabriquer des moules e Programmation Fonctionnelle M´ta-classe e → classes → objets Structures POO Historique Utilisation Objet Classe Ajouter des fonctions au H´ritage e D´finition e langage VS composition Constructeurs Tra¸age des appels c Abstraction Concepts S´rialisation e avanc´s e Membres statiques Programmation orient´e e Polymorphisme Exceptions aspects M´ta-classes e Ramasse-miettes etc. Fin
  68. 68. M´ta-classes e POO, h´ritage e Johann Dr´o e M´ta-classes e Pr´-requis e M´ta-classes = presse pour fabriquer des moules e Programmation Fonctionnelle M´ta-classe e → classes → objets Structures POO Historique Utilisation Objet Classe Ajouter des fonctions au H´ritage e D´finition e langage VS composition Constructeurs Tra¸age des appels c Abstraction Concepts S´rialisation e avanc´s e Membres statiques Programmation orient´e e Polymorphisme Exceptions aspects M´ta-classes e Ramasse-miettes etc. Fin
  69. 69. Ramasse-miettes POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation C++ Fonctionnelle Structures A *a = new A() ; delete a ; POO Historique Objet Garbage collector Classe H´ritage e Lib´ration automatique de la m´moire e e D´finition e VS composition Pr´vient : e Constructeurs Abstraction acc`s ` une zone non allou´e e a e Concepts lib´ration d’une zone d´j` lib´r´e e ea ee avanc´s e Membres fuites m´moire e statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  70. 70. Ramasse-miettes POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation C++ Fonctionnelle Structures A *a = new A() ; delete a ; POO Historique Objet Garbage collector Classe H´ritage e Lib´ration automatique de la m´moire e e D´finition e VS composition Pr´vient : e Constructeurs Abstraction acc`s ` une zone non allou´e e a e Concepts lib´ration d’une zone d´j` lib´r´e e ea ee avanc´s e Membres fuites m´moire e statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  71. 71. POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation Fonctionnelle Structures POO Historique Objet Classe H´ritage e D´finition e VS composition Constructeurs Abstraction Concepts avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin
  72. 72. POO, h´ritage e Johann Dr´o e Pr´-requis e Programmation Fonctionnelle Structures POO Historique Objet Classe H´ritage e D´finition e VS composition Constructeurs Abstraction Concepts avanc´s e Membres statiques Polymorphisme Exceptions M´ta-classes e Ramasse-miettes Fin

×