SlideShare une entreprise Scribd logo
Génie Logiciel
NOTIONS DE PROGRAMMATION
ORIENTÉE OBJET
Les données d'abord
Important résultat de l'expérience :
 Le plus souvent, il vaut mieux organiser un système autour des données
qu'autour des fonctions
 Et ce d'autant plus que les données sont complexes
 Mais si les données sont simples et les traitements complexes, OK pour
organiser le système autour des fonctions
 Ex. bibliothèque de fonctions mathémaques.
Les données d'abord
Important résultat de l'expérience :
 Le plus souvent, il vaut mieux organiser un système autour des données
qu'autour des fonctions
→ Lien avec le modèle conceptuel
 objets, attributs, opérations pour les manipuler
 Programmation Orientée Objet (OO)
Notions de programmation objet
 Nécessite un cours complet
 principes
 méthodologie
 langages : Java
 Juste quelques notions ici
 idées les plus importantes
 exemples en Java
Programmation objet :
classe et instance
 Classe
 = type d'objet (données + opérations pour les manipuler)
 ex. : classe « point » dans le plan (c.-à-d. en dim 2)
 données = deux coordonnées cartésiennes (x,y)
 opérations = déplacer, calculer la norme (distance à (0,0)), ...
 en général : 1 fichier ~ 1 classe
 Instance
 = exemplaire de la classe
 ex. : un point en (3,5), un en (-2,7), un autre en (3,5) ...
Programmation objet :
champ et méthode
 Champ
 = attribut de l'objet
 ex. : coordonnée x et coordonnée y
(on dit aussi « variable d'instance »)
 Méthode
 = opération pour manipuler les données (~ fonction)
 ex. : déplacer(dx,dy) et norme()
Exemple en Java : classe Point
Exemple en Java : classe Point
Exemple en Java : instances
Exemple en Java : instances
Programmation objet :
constructeur
Constructeur
 sorte de méthode
 initialise les champs de l'objet lors de sa création
 créations/initialisations plus lisibles
 permet des initialisations toujours cohérentes
Exemple en Java : constructeur
Exemple en Java : constructeur
Programmation objet :
extension de classe et héritage
Extension de classe
 version spécialisée d'une classe existante
 héritage des champs et méthodes de cette classe
 champs et méthodes additionnels
 vocabulaire :
 sous-classe : la classe étendue
 super classe : la classe que l'on étend
Exemple en Java : extension
Exemple en Java : extension
Programmation objet :
masquage de l'information
 Masquage de l'information
 s'applique à : classes, champs et méthodes
 visibilité
 public : visible par toutes les classes
 private : visible seulement dans la classe
 protected : visible seulement par les classes étendues
 (package : visible seulement des classes du même package)
 Type abstrait
 on peut changer le contenu privé de la classe sans changer ses utilisations
publiques
Exemple en Java : visibilité
Exemple en Java : visibilité
Programmation objet :
interface
 Interface
 ~ squelette d'une classe, sans implémentation
 méthodes d'interface : sans corps (abstraites)
 pas de champs d'interface
 plusieurs classes peuvent implémenter une même interface
 une interface peut étendre plusieurs autres interfaces
☛ Type abstrait (...→)
 on peut changer la classe sans changer les utilisations de l'interface
Exemple en Java : interface
Exemple en Java : interface
Exemple en Java : interface
Exemple en Java : interface
Autres notions
 Notion de package (paquetage)
 espace de nommage
 Héritage multiple
 extension de plusieurs classes
 Classes abstraites
 ~ classes incomplètes
 Variables de classes
 ~ globales
 …
A retenir
 Organisation du système autour de :
 fonctions si pas d'objets ou objets simples (ex. scalaires)
 données si des objets complexes
 Lien avec le modèle conceptuel
 Concepts de la programmation objet
 classe, instance, champ, méthode, constructeur, interface, héritage, extension
 Masquage de l'information et types abstraits
11-Cours de Géniel Logiciel

Contenu connexe

Tendances

Design patterns french
Design patterns frenchDesign patterns french
Design patterns french
meriem sari
 
Abstract factory+adapter
Abstract factory+adapterAbstract factory+adapter
Abstract factory+adapter
Kamel Eddine Heragmi
 
patron de conception
patron de conception patron de conception
patron de conception
Shili Mohamed
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
Mansouri Khalifa
 
Design patterns : résumé
Design patterns : résuméDesign patterns : résumé
Design patterns : résumé
Boubker ABERWAG
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
neuros
 
Uml
UmlUml
Modélisation avec UML
Modélisation avec UMLModélisation avec UML
Modélisation avec UML
ECAM Brussels Engineering School
 
Design Patterns (2003)
Design Patterns (2003)Design Patterns (2003)
Design Patterns (2003)
Pascal Roques
 
12-Cours de Géniel Logiciel
12-Cours de Géniel Logiciel12-Cours de Géniel Logiciel
12-Cours de Géniel Logiciel
lauraty3204
 
UML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriUML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouri
Mansouri Khalifa
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de Classes
Lilia Sfaxi
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetAmine Chkr
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
Amir Souissi
 
Modeliser une application_web
Modeliser une application_webModeliser une application_web
Modeliser une application_web
Moez Moezm
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...
Hamza SAID
 
Expo diagramme cas d'utilisation
Expo diagramme cas d'utilisationExpo diagramme cas d'utilisation
Expo diagramme cas d'utilisationaminooovich
 

Tendances (20)

Design patterns french
Design patterns frenchDesign patterns french
Design patterns french
 
Abstract factory+adapter
Abstract factory+adapterAbstract factory+adapter
Abstract factory+adapter
 
patron de conception
patron de conception patron de conception
patron de conception
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
Design patterns : résumé
Design patterns : résuméDesign patterns : résumé
Design patterns : résumé
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
 
Uml
UmlUml
Uml
 
Modélisation avec UML
Modélisation avec UMLModélisation avec UML
Modélisation avec UML
 
7 diagramme de cas d'utilisation
7 diagramme de cas d'utilisation7 diagramme de cas d'utilisation
7 diagramme de cas d'utilisation
 
Manuel uml-poweramc
Manuel uml-poweramcManuel uml-poweramc
Manuel uml-poweramc
 
Design Patterns (2003)
Design Patterns (2003)Design Patterns (2003)
Design Patterns (2003)
 
12-Cours de Géniel Logiciel
12-Cours de Géniel Logiciel12-Cours de Géniel Logiciel
12-Cours de Géniel Logiciel
 
UML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriUML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouri
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de Classes
 
Uml
UmlUml
Uml
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception Objet
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Modeliser une application_web
Modeliser une application_webModeliser une application_web
Modeliser une application_web
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...
 
Expo diagramme cas d'utilisation
Expo diagramme cas d'utilisationExpo diagramme cas d'utilisation
Expo diagramme cas d'utilisation
 

Similaire à 11-Cours de Géniel Logiciel

Interface collectionsinter
Interface collectionsinterInterface collectionsinter
Interface collectionsinterRYMAA
 
Cours de JAVA de base
Cours de JAVA  de baseCours de JAVA  de base
Cours de JAVA de base
Wiki Info Systeme
 
Les Classe en Java
Les Classe en JavaLes Classe en Java
Les Classe en Java
Wiki Info Systeme
 
Introduction à scala
Introduction à scalaIntroduction à scala
Introduction à scala
SOAT
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdf
LarbaSAWADOGO2
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4
Laurent BUNIET
 
Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011yassine kchiri
 
XB-Java.ppt
XB-Java.pptXB-Java.ppt
XB-Java.ppt
RihabBENLAMINE
 
Diagramme de Classe
Diagramme de ClasseDiagramme de Classe
Diagramme de Classe
abdoMarocco
 
Classes et Objets.pdf
Classes et Objets.pdfClasses et Objets.pdf
Classes et Objets.pdf
AabidiHafid
 
Langage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté ObjetLangage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté ObjetMohammed Jaafar
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieurFredy Fadel
 
Chapitre3 2013 POO
Chapitre3 2013 POOChapitre3 2013 POO
Chapitre3 2013 POO
Seif Eddine Attia
 
Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]linasafaa
 
coursbienecrisetbiendetailledeLanguageJava.pdf
coursbienecrisetbiendetailledeLanguageJava.pdfcoursbienecrisetbiendetailledeLanguageJava.pdf
coursbienecrisetbiendetailledeLanguageJava.pdf
jiyorak923
 
POO-Cours.pdf
POO-Cours.pdfPOO-Cours.pdf
POO-Cours.pdf
BoubakerMedanas
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Pensez objets avec java
Pensez objets avec javaPensez objets avec java
Pensez objets avec java
Asmaa BENGUEDDACH
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objet
Amir Souissi
 

Similaire à 11-Cours de Géniel Logiciel (20)

Interface collectionsinter
Interface collectionsinterInterface collectionsinter
Interface collectionsinter
 
Cours de JAVA de base
Cours de JAVA  de baseCours de JAVA  de base
Cours de JAVA de base
 
Les Classe en Java
Les Classe en JavaLes Classe en Java
Les Classe en Java
 
Introduction à scala
Introduction à scalaIntroduction à scala
Introduction à scala
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdf
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4
 
Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011
 
XB-Java.ppt
XB-Java.pptXB-Java.ppt
XB-Java.ppt
 
Diagramme de Classe
Diagramme de ClasseDiagramme de Classe
Diagramme de Classe
 
Classes et Objets.pdf
Classes et Objets.pdfClasses et Objets.pdf
Classes et Objets.pdf
 
Langage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté ObjetLangage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté Objet
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieur
 
Chapitre3 2013 POO
Chapitre3 2013 POOChapitre3 2013 POO
Chapitre3 2013 POO
 
Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]
 
coursbienecrisetbiendetailledeLanguageJava.pdf
coursbienecrisetbiendetailledeLanguageJava.pdfcoursbienecrisetbiendetailledeLanguageJava.pdf
coursbienecrisetbiendetailledeLanguageJava.pdf
 
POO-Cours.pdf
POO-Cours.pdfPOO-Cours.pdf
POO-Cours.pdf
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Pensez objets avec java
Pensez objets avec javaPensez objets avec java
Pensez objets avec java
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objet
 

Plus de lauraty3204

1.1-Cours de Géniel Logiciel
1.1-Cours de Géniel Logiciel 1.1-Cours de Géniel Logiciel
1.1-Cours de Géniel Logiciel
lauraty3204
 
13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel
lauraty3204
 
9-Cours de Géniel Logiciel
9-Cours de Géniel Logiciel9-Cours de Géniel Logiciel
9-Cours de Géniel Logiciel
lauraty3204
 
7-Cours de Géniel Logiciel
7-Cours de Géniel Logiciel7-Cours de Géniel Logiciel
7-Cours de Géniel Logiciel
lauraty3204
 
4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel
lauraty3204
 
3-Cours de Géniel Logiciel
3-Cours de Géniel Logiciel3-Cours de Géniel Logiciel
3-Cours de Géniel Logiciel
lauraty3204
 
2-Cours de Géniel Logiciel
2-Cours de Géniel Logiciel2-Cours de Géniel Logiciel
2-Cours de Géniel Logiciel
lauraty3204
 
1-Cours de Géniel Logiciel
1-Cours de Géniel Logiciel1-Cours de Géniel Logiciel
1-Cours de Géniel Logiciel
lauraty3204
 

Plus de lauraty3204 (8)

1.1-Cours de Géniel Logiciel
1.1-Cours de Géniel Logiciel 1.1-Cours de Géniel Logiciel
1.1-Cours de Géniel Logiciel
 
13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel
 
9-Cours de Géniel Logiciel
9-Cours de Géniel Logiciel9-Cours de Géniel Logiciel
9-Cours de Géniel Logiciel
 
7-Cours de Géniel Logiciel
7-Cours de Géniel Logiciel7-Cours de Géniel Logiciel
7-Cours de Géniel Logiciel
 
4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel
 
3-Cours de Géniel Logiciel
3-Cours de Géniel Logiciel3-Cours de Géniel Logiciel
3-Cours de Géniel Logiciel
 
2-Cours de Géniel Logiciel
2-Cours de Géniel Logiciel2-Cours de Géniel Logiciel
2-Cours de Géniel Logiciel
 
1-Cours de Géniel Logiciel
1-Cours de Géniel Logiciel1-Cours de Géniel Logiciel
1-Cours de Géniel Logiciel
 

11-Cours de Géniel Logiciel

  • 1. Génie Logiciel NOTIONS DE PROGRAMMATION ORIENTÉE OBJET
  • 2. Les données d'abord Important résultat de l'expérience :  Le plus souvent, il vaut mieux organiser un système autour des données qu'autour des fonctions  Et ce d'autant plus que les données sont complexes  Mais si les données sont simples et les traitements complexes, OK pour organiser le système autour des fonctions  Ex. bibliothèque de fonctions mathémaques.
  • 3. Les données d'abord Important résultat de l'expérience :  Le plus souvent, il vaut mieux organiser un système autour des données qu'autour des fonctions → Lien avec le modèle conceptuel  objets, attributs, opérations pour les manipuler  Programmation Orientée Objet (OO)
  • 4. Notions de programmation objet  Nécessite un cours complet  principes  méthodologie  langages : Java  Juste quelques notions ici  idées les plus importantes  exemples en Java
  • 5. Programmation objet : classe et instance  Classe  = type d'objet (données + opérations pour les manipuler)  ex. : classe « point » dans le plan (c.-à-d. en dim 2)  données = deux coordonnées cartésiennes (x,y)  opérations = déplacer, calculer la norme (distance à (0,0)), ...  en général : 1 fichier ~ 1 classe  Instance  = exemplaire de la classe  ex. : un point en (3,5), un en (-2,7), un autre en (3,5) ...
  • 6. Programmation objet : champ et méthode  Champ  = attribut de l'objet  ex. : coordonnée x et coordonnée y (on dit aussi « variable d'instance »)  Méthode  = opération pour manipuler les données (~ fonction)  ex. : déplacer(dx,dy) et norme()
  • 7. Exemple en Java : classe Point
  • 8. Exemple en Java : classe Point
  • 9. Exemple en Java : instances
  • 10. Exemple en Java : instances
  • 11. Programmation objet : constructeur Constructeur  sorte de méthode  initialise les champs de l'objet lors de sa création  créations/initialisations plus lisibles  permet des initialisations toujours cohérentes
  • 12. Exemple en Java : constructeur
  • 13. Exemple en Java : constructeur
  • 14. Programmation objet : extension de classe et héritage Extension de classe  version spécialisée d'une classe existante  héritage des champs et méthodes de cette classe  champs et méthodes additionnels  vocabulaire :  sous-classe : la classe étendue  super classe : la classe que l'on étend
  • 15. Exemple en Java : extension
  • 16. Exemple en Java : extension
  • 17. Programmation objet : masquage de l'information  Masquage de l'information  s'applique à : classes, champs et méthodes  visibilité  public : visible par toutes les classes  private : visible seulement dans la classe  protected : visible seulement par les classes étendues  (package : visible seulement des classes du même package)  Type abstrait  on peut changer le contenu privé de la classe sans changer ses utilisations publiques
  • 18. Exemple en Java : visibilité
  • 19. Exemple en Java : visibilité
  • 20. Programmation objet : interface  Interface  ~ squelette d'une classe, sans implémentation  méthodes d'interface : sans corps (abstraites)  pas de champs d'interface  plusieurs classes peuvent implémenter une même interface  une interface peut étendre plusieurs autres interfaces ☛ Type abstrait (...→)  on peut changer la classe sans changer les utilisations de l'interface
  • 21. Exemple en Java : interface
  • 22. Exemple en Java : interface
  • 23. Exemple en Java : interface
  • 24. Exemple en Java : interface
  • 25. Autres notions  Notion de package (paquetage)  espace de nommage  Héritage multiple  extension de plusieurs classes  Classes abstraites  ~ classes incomplètes  Variables de classes  ~ globales  …
  • 26. A retenir  Organisation du système autour de :  fonctions si pas d'objets ou objets simples (ex. scalaires)  données si des objets complexes  Lien avec le modèle conceptuel  Concepts de la programmation objet  classe, instance, champ, méthode, constructeur, interface, héritage, extension  Masquage de l'information et types abstraits

Notes de l'éditeur

  1. Fonction: ensemble d’ordres accomplissant une tache particuliere, elle peut prendre des arguments et en general renvoie un resultat( sinon en absence de resultat retourné on parle de procédure) Methode procedure ou fonction declaree dans un bloc de declaration d’un objet…
  2. POO,
  3. Une classe: c’est une description abstraite des données et du comportement d’objets, ces objets etant similaires. Les representants de la classe sont appelelés objets.
  4. Classe; definition de champs; definition de Méthode; création d’instance et appel de Méthode Nome d’un vecteur: c’est une extension de la valeur absolue des nombres au vecteur. Elle permet de définir toutes les representations d’un vecteur dans un espace affine… Espace affine, c’est un espace issu de la geometrie euclidienne dont les notions d’angle et de distance ne sont pas pris en compte.
  5. Classe; definition de champs; definition de Méthode; creation d’instance et appel de méthode
  6. Définition de classe; definition de Méthode; creation d’instance et appel de Méthode
  7. Définition de classe; definition de Méthode; creation d’instance et appel de méthode
  8. Classe; Constructeur; Champs; Instances
  9. Classe; Constructeur; Champs; Instances
  10. Constructeur; sous-classe; champ ajouté; méthode ajoutée; super-classe; champs hérités; Méthode héritée; instances
  11. Constructeur; sous-classe; champ ajouté; méthode ajouté; sper-classe; champs hérités; Méthode héritée; instances
  12. Classe; Champs visible/invisible en dehors de Point;
  13. Classe; Champs visible/invisible en dehors de Point;
  14. définition d'interface; implémentations d'interface; méthodes interface; définition de classes qui implémentent cette interface
  15. définition d'interface; implémentations d'interface; méthodes interface; définition de classes qui implémentent cette interface
  16. appel de constructeurs spécifiques à chaque classe; appels des méthodes d'interface
  17. appel de constructeurs spécifiques à chaque classe; appels des méthodes d'interface