Introduction à la POO - cours 1h

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Introduction à la POO - cours 1h - Presentation Transcript

    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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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 (\"Bonjour\") ; 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
    SlideShare Zeitgeist 2009

    + Johann DréoJohann Dréo Nominate

    custom

    510 views, 1 favs, 0 embeds more stats

    Cours d'une heure sur la programmation orientée, o more

    More info about this document

    CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

    Go to text version

    • Total Views 510
      • 510 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 10
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories