SlideShare une entreprise Scribd logo
1  sur  22
1
Cours Programmation Orientée
Objet (POO)
2eme année GENIE
Par
l’Assistant Eddy MUTOMBO SHANGA
2
Objectif
• Introduction des concepts de base de la POO.
• développe des notions de base du langage JAVA
• L'étudiant est censé avoir acquit pendant le module les
compétences suivantes:
L'essence de la programmation objet en java
Lire et comprendre des programmes en java
Ecrire la solution d'un problème en java
Ecrire des applications sophistiquées (utilisation de
structures de données avancées)
• Prés requis: Algorithmique, Structures de données, Programmation I et
Programmation II
3
Contenu de la matière
• Introduction à la Programmation Orientée Objet
• Les classes
– Déclaration des classes
– Les constructeurs et destructeurs
– Les méthodes d’accès
• Encapsulation
• Héritage et polymorphisme
• Interface et implémentation
• Interface graphique et Applet
4
Chapitre 1 :
Introduction à la Programmation
Orientée Objet
5
De la programmation classique vers la
programmation orientée objet
La programmation classique telle que étudiée au travers des langages
C, Pascal… définie un programme comme étant:
 un ensemble de données sur lesquelles agissent des procédures et
des fonctions.
Les données constituent la partie passive du programme. Les
procédures et les fonctions constituent la partie active;
 Programmer dans ce cas revenait à:
définir un certain nombre de variables (structures, tableaux…)
écrire des procédures pour les manipuler sans associer
explicitement les unes aux autres.
6
De la programmation classique vers la
programmation orientée objet
Exécuter un programme se réduit alors à appeler ces procédures dans
un ordre décrit par le séquençage des instructions et en leur fournissant
les données nécessaires à l’accomplissement de leurs tâches.
7
De la programmation classique vers la
programmation orientée objet
Dans cette approche données et procédure sont traitées indépendamment
les unes des autres sans tenir compte des relations étroites qui les unissent.
Les questions qu’on peut poser dans ce cas:
1. Cette séparation (données, procédures) est elle utile?
2. Pourquoi privilégier les procédures sur les données (Que veut-on faire?)?
3. Pourquoi ne pas considérer que les programmes sont avant tout des
ensembles objets informatiques caractérisé par les opérations qu’ils
connaissent?
Les langages objets sont nés pour répondre à ces questions. Ils sont
fondés sur la connaissance d’une seule catégorie d’entités informatiques: le
objets.
Un objet incorpore des aspects statiques et dynamiques au sein d’une
même notion.
8
De la programmation classique vers la
programmation orientée objet
 Un programme est constitué d’un ensemble d’objets chacun disposant
d’une partie procédures et d’une partie données. Les objets interagissent par
envoie de messages.
Un objet peut recevoir un msg qui déclenche:
Une fonction qui modifie son état ou
Une fonction qui envoie un msg à un autre objet
9
De la programmation classique vers la
programmation orientée objet
Les objets sont de nouvelles sortes de variables encore plus
générales que les types dérivés (ou structures). Leur caractéristique
principale: ils acceptent des procédures (fonctions, subroutines)
comme composantes.
 La question « Que doit faire le système ? » dans l’approche classique
devient « Sur quoi doit-il le faire? » et de quoi doit être composé mon
programme?
10
De la programmation classique vers la
programmation orientée objet

Programmation classique Programmation Orienté e Objet
11
La crise du logiciel
 Dans les années 1970, la programmation se développe et de
nouvelles technologies logicielles apparaissent : mode multi-utilisateurs,
interfaces graphiques, programmation concurrente, …
La taille des programmes augmente également : 10 000 lignes de code
pour un logiciel de bonne taille dans les années 1970, 50000 dans les
années 1980 (et des millions de nos jours).
La crise du logiciel des années 70 est provoquée par :
1. l'impossibilité de maitriser la sureté des logiciels (pannes
nombreuses)
2. l'inflation des délais de développement
De bonnes techniques de développement logiciel deviennent nécessaires.
12
Historique
 La programmation objet est inventée dans les années 1970 comme une
extension de la programmation procédurale.
L'idée est de concevoir les programmes non plus comme des lignes de
codes qui s'exécutent séquentiellement, mais comme des objets qui
dialoguent..
 Début en Norvège à la fin des années 60 :Simula 64 est le premier
langage à utiliser ce paradigme mais de façon limitée.
 Smalltalk, développé à partir de 1971 par Alan Kay et publié en
1980, est le premier vrai langage objet.
D'autres suivront : Eiffel en 1986, Python en 1991, ...
Des versions objets de langages existants seront développées : C++
pour le C, ADA95 pour le ADA, Object Pascal pour le Pascal ..
13
Historique
 Année 1990: apparition de java et standardisation
de C++
Première version de Java en 1995, développée
principalement par James Gosling.
La programmation objet devient à la fin des
années 90 le paradigme dominant en programmation.
14
Notions de base
 Algorithmique Objet:Dans l’approche orienté objet un
algorithme sera essentiellement vu comme un ensemble d’objets
auxquels l’utilisateur envoie des messages et qui s’en envoient pendent
le fonctionnement.
Ces objets seront toujours pour l’utilisateur des boites noires et qui
contiendront des variables locales, inconnues de l’environnement, et
qui ne s’y intéressera d’ailleurs pas. Le seul moyen d’accéder à ces
objets sera l’envoie des messages qu’ils sont capables de comprendre.
15
Notions de base
 Un objet est une entité logicielle:
 Ayant une identité
 Capable de sauvegarder un état c'est-à-dire un ensemble
d’information dans des variables internes (attributs).
 Répondant à des messages précis en déclenchant des activations
internes appropriés qui changent l’état de l’objet (comportement).
Ces opération sont appelées méthodes. Ce sont des fonctions liées à
des objets et qui précisent le comportement de ces objets.
Attributs :Les attributs d’un objet sont l’ensemble des
informations se présentant sous forme de variable et permettant de
représenter l’état de l’objet.
16
Notions de base
 Message: un message est une demande d’activation d’une méthode
envoyé à un objet.
 Méthodes: une méthode est une fonction ou procédure liée à un
objet qui est déclenchée à la réception d’un message particulier, la
méthode déclenchée correspond strictement au message reçu.
 La liste des méthodes définies au sein d’un objet constitue
l’interface de l’objet pour l’utilisateur.
Signature: la signature d’une méthode représente la précision de
son nom, du type de ses arguments et du type de donnée retournée.
17
Notions de base
 L’invocation d’une méthode peut déclencher 3 types d’actions:
Manipulation des données de l’objet;
Envoi de messages;
Création de nouveaux objets.
Classes: Une classe est un ensemble d’objets qui ont en commun:
 les mêmes méthodes
les mêmes types d’attributs
Classe = attributs + méthodes + instanciations
 Une instance d’une classe est un objet particulier d’une classe qui
peut activer les méthodes de la classe et qui a des valeurs particulières
de ses attributs. On définit l’objet comme l’instance d’une classe.
 La classe représente pour l’objet ce que représente le type pour la
variable.
18
Notions de base
 Une classe est un type abstrait qui encapsulent données et
traitement. C’est une sorte de moule qui permet ensuite de créer autant
d’instances qu’on veut.
19
Notions de base
 Une classe est un type abstrait qui encapsulent données et
traitement. C’est une sorte de moule qui permet ensuite de créer autant
d’instances qu’on veut.
20
Notions de base
public class Etudiant {
private String nom;
private String prenom;
private int Age;
public Etudiant(String nom,String prenom, int Age){
this.nom = nom;
this.prenom = prenom;
this.Age= Age;
}
public String getNom(){
return this.nom ;
}
public String getpreNom(){
return this.prenom ;
}
public int getAge(){
return this.Age ;
}
}
21
Notions de base
La notion de classe
Nous allons commencer par vous exposer les notions de classe, d’objet
et d’encapsulation à partir d’un exemple simple de classe.
- Nous verrons d’abord comment créer une classe, c’est-à-dire
écrire les instructions permettant d’en définir le contenu (champs ou
données) et le comportement (méthodes).
- Puis nous verrons comment utiliser effectivement cette classe
au sein d’un programme.
22
Notions de base
La notion de classe
Nous allons commencer par vous exposer les notions de classe, d’objet
et d’encapsulation à partir d’un exemple simple de classe.
- Nous verrons d’abord comment créer une classe, c’est-à-dire
écrire les instructions permettant d’en définir le contenu (champs ou
données) et le comportement (méthodes).
- Puis nous verrons comment utiliser effectivement cette classe
au sein d’un programme.

Contenu connexe

Similaire à PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt

ProgrammationO.O.pptx
ProgrammationO.O.pptxProgrammationO.O.pptx
ProgrammationO.O.pptxFadelStark
 
Chapitre 1 introduction generale
Chapitre 1   introduction generaleChapitre 1   introduction generale
Chapitre 1 introduction generaleAmir Souissi
 
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
 
Lecture_1_Concepts-fondamentaux_P01.pptx
Lecture_1_Concepts-fondamentaux_P01.pptxLecture_1_Concepts-fondamentaux_P01.pptx
Lecture_1_Concepts-fondamentaux_P01.pptxBtnPrinciiIsral
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partiekadzaki
 
Visite guidée au pays de la donnée - Du modèle conceptuel au modèle physique
Visite guidée au pays de la donnée - Du modèle conceptuel au modèle physiqueVisite guidée au pays de la donnée - Du modèle conceptuel au modèle physique
Visite guidée au pays de la donnée - Du modèle conceptuel au modèle physiqueGautier Poupeau
 
m103-resume-cours-theorique-6156f136c407b.pdf
m103-resume-cours-theorique-6156f136c407b.pdfm103-resume-cours-theorique-6156f136c407b.pdf
m103-resume-cours-theorique-6156f136c407b.pdfFootballLovers9
 
Cours de C++, en français, 2002 - Cours 1.1
Cours de C++, en français, 2002 - Cours 1.1Cours de C++, en français, 2002 - Cours 1.1
Cours de C++, en français, 2002 - Cours 1.1Laurent BUNIET
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfYasushiTsubakik
 
Seance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptxSeance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptxRihabBENLAMINE
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zinebZineb ELGARRAI
 

Similaire à PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt (20)

ProgrammationO.O.pptx
ProgrammationO.O.pptxProgrammationO.O.pptx
ProgrammationO.O.pptx
 
Chapitre 1 introduction generale
Chapitre 1   introduction generaleChapitre 1   introduction generale
Chapitre 1 introduction generale
 
Cours BDD.pptx
Cours BDD.pptxCours BDD.pptx
Cours BDD.pptx
 
.NET
.NET.NET
.NET
 
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
 
Uml upxp2
Uml upxp2Uml upxp2
Uml upxp2
 
Lecture_1_Concepts-fondamentaux_P01.pptx
Lecture_1_Concepts-fondamentaux_P01.pptxLecture_1_Concepts-fondamentaux_P01.pptx
Lecture_1_Concepts-fondamentaux_P01.pptx
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partie
 
Visite guidée au pays de la donnée - Du modèle conceptuel au modèle physique
Visite guidée au pays de la donnée - Du modèle conceptuel au modèle physiqueVisite guidée au pays de la donnée - Du modèle conceptuel au modèle physique
Visite guidée au pays de la donnée - Du modèle conceptuel au modèle physique
 
Java
JavaJava
Java
 
m103-resume-cours-theorique-6156f136c407b.pdf
m103-resume-cours-theorique-6156f136c407b.pdfm103-resume-cours-theorique-6156f136c407b.pdf
m103-resume-cours-theorique-6156f136c407b.pdf
 
Cours1 2 gdmm
Cours1 2 gdmmCours1 2 gdmm
Cours1 2 gdmm
 
Cours de C++, en français, 2002 - Cours 1.1
Cours de C++, en français, 2002 - Cours 1.1Cours de C++, en français, 2002 - Cours 1.1
Cours de C++, en français, 2002 - Cours 1.1
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Cours uml
Cours umlCours uml
Cours uml
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdf
 
Apprentissage du java
Apprentissage du javaApprentissage du java
Apprentissage du java
 
Seance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptxSeance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptx
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zineb
 

PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt

  • 1. 1 Cours Programmation Orientée Objet (POO) 2eme année GENIE Par l’Assistant Eddy MUTOMBO SHANGA
  • 2. 2 Objectif • Introduction des concepts de base de la POO. • développe des notions de base du langage JAVA • L'étudiant est censé avoir acquit pendant le module les compétences suivantes: L'essence de la programmation objet en java Lire et comprendre des programmes en java Ecrire la solution d'un problème en java Ecrire des applications sophistiquées (utilisation de structures de données avancées) • Prés requis: Algorithmique, Structures de données, Programmation I et Programmation II
  • 3. 3 Contenu de la matière • Introduction à la Programmation Orientée Objet • Les classes – Déclaration des classes – Les constructeurs et destructeurs – Les méthodes d’accès • Encapsulation • Héritage et polymorphisme • Interface et implémentation • Interface graphique et Applet
  • 4. 4 Chapitre 1 : Introduction à la Programmation Orientée Objet
  • 5. 5 De la programmation classique vers la programmation orientée objet La programmation classique telle que étudiée au travers des langages C, Pascal… définie un programme comme étant:  un ensemble de données sur lesquelles agissent des procédures et des fonctions. Les données constituent la partie passive du programme. Les procédures et les fonctions constituent la partie active;  Programmer dans ce cas revenait à: définir un certain nombre de variables (structures, tableaux…) écrire des procédures pour les manipuler sans associer explicitement les unes aux autres.
  • 6. 6 De la programmation classique vers la programmation orientée objet Exécuter un programme se réduit alors à appeler ces procédures dans un ordre décrit par le séquençage des instructions et en leur fournissant les données nécessaires à l’accomplissement de leurs tâches.
  • 7. 7 De la programmation classique vers la programmation orientée objet Dans cette approche données et procédure sont traitées indépendamment les unes des autres sans tenir compte des relations étroites qui les unissent. Les questions qu’on peut poser dans ce cas: 1. Cette séparation (données, procédures) est elle utile? 2. Pourquoi privilégier les procédures sur les données (Que veut-on faire?)? 3. Pourquoi ne pas considérer que les programmes sont avant tout des ensembles objets informatiques caractérisé par les opérations qu’ils connaissent? Les langages objets sont nés pour répondre à ces questions. Ils sont fondés sur la connaissance d’une seule catégorie d’entités informatiques: le objets. Un objet incorpore des aspects statiques et dynamiques au sein d’une même notion.
  • 8. 8 De la programmation classique vers la programmation orientée objet  Un programme est constitué d’un ensemble d’objets chacun disposant d’une partie procédures et d’une partie données. Les objets interagissent par envoie de messages. Un objet peut recevoir un msg qui déclenche: Une fonction qui modifie son état ou Une fonction qui envoie un msg à un autre objet
  • 9. 9 De la programmation classique vers la programmation orientée objet Les objets sont de nouvelles sortes de variables encore plus générales que les types dérivés (ou structures). Leur caractéristique principale: ils acceptent des procédures (fonctions, subroutines) comme composantes.  La question « Que doit faire le système ? » dans l’approche classique devient « Sur quoi doit-il le faire? » et de quoi doit être composé mon programme?
  • 10. 10 De la programmation classique vers la programmation orientée objet  Programmation classique Programmation Orienté e Objet
  • 11. 11 La crise du logiciel  Dans les années 1970, la programmation se développe et de nouvelles technologies logicielles apparaissent : mode multi-utilisateurs, interfaces graphiques, programmation concurrente, … La taille des programmes augmente également : 10 000 lignes de code pour un logiciel de bonne taille dans les années 1970, 50000 dans les années 1980 (et des millions de nos jours). La crise du logiciel des années 70 est provoquée par : 1. l'impossibilité de maitriser la sureté des logiciels (pannes nombreuses) 2. l'inflation des délais de développement De bonnes techniques de développement logiciel deviennent nécessaires.
  • 12. 12 Historique  La programmation objet est inventée dans les années 1970 comme une extension de la programmation procédurale. L'idée est de concevoir les programmes non plus comme des lignes de codes qui s'exécutent séquentiellement, mais comme des objets qui dialoguent..  Début en Norvège à la fin des années 60 :Simula 64 est le premier langage à utiliser ce paradigme mais de façon limitée.  Smalltalk, développé à partir de 1971 par Alan Kay et publié en 1980, est le premier vrai langage objet. D'autres suivront : Eiffel en 1986, Python en 1991, ... Des versions objets de langages existants seront développées : C++ pour le C, ADA95 pour le ADA, Object Pascal pour le Pascal ..
  • 13. 13 Historique  Année 1990: apparition de java et standardisation de C++ Première version de Java en 1995, développée principalement par James Gosling. La programmation objet devient à la fin des années 90 le paradigme dominant en programmation.
  • 14. 14 Notions de base  Algorithmique Objet:Dans l’approche orienté objet un algorithme sera essentiellement vu comme un ensemble d’objets auxquels l’utilisateur envoie des messages et qui s’en envoient pendent le fonctionnement. Ces objets seront toujours pour l’utilisateur des boites noires et qui contiendront des variables locales, inconnues de l’environnement, et qui ne s’y intéressera d’ailleurs pas. Le seul moyen d’accéder à ces objets sera l’envoie des messages qu’ils sont capables de comprendre.
  • 15. 15 Notions de base  Un objet est une entité logicielle:  Ayant une identité  Capable de sauvegarder un état c'est-à-dire un ensemble d’information dans des variables internes (attributs).  Répondant à des messages précis en déclenchant des activations internes appropriés qui changent l’état de l’objet (comportement). Ces opération sont appelées méthodes. Ce sont des fonctions liées à des objets et qui précisent le comportement de ces objets. Attributs :Les attributs d’un objet sont l’ensemble des informations se présentant sous forme de variable et permettant de représenter l’état de l’objet.
  • 16. 16 Notions de base  Message: un message est une demande d’activation d’une méthode envoyé à un objet.  Méthodes: une méthode est une fonction ou procédure liée à un objet qui est déclenchée à la réception d’un message particulier, la méthode déclenchée correspond strictement au message reçu.  La liste des méthodes définies au sein d’un objet constitue l’interface de l’objet pour l’utilisateur. Signature: la signature d’une méthode représente la précision de son nom, du type de ses arguments et du type de donnée retournée.
  • 17. 17 Notions de base  L’invocation d’une méthode peut déclencher 3 types d’actions: Manipulation des données de l’objet; Envoi de messages; Création de nouveaux objets. Classes: Une classe est un ensemble d’objets qui ont en commun:  les mêmes méthodes les mêmes types d’attributs Classe = attributs + méthodes + instanciations  Une instance d’une classe est un objet particulier d’une classe qui peut activer les méthodes de la classe et qui a des valeurs particulières de ses attributs. On définit l’objet comme l’instance d’une classe.  La classe représente pour l’objet ce que représente le type pour la variable.
  • 18. 18 Notions de base  Une classe est un type abstrait qui encapsulent données et traitement. C’est une sorte de moule qui permet ensuite de créer autant d’instances qu’on veut.
  • 19. 19 Notions de base  Une classe est un type abstrait qui encapsulent données et traitement. C’est une sorte de moule qui permet ensuite de créer autant d’instances qu’on veut.
  • 20. 20 Notions de base public class Etudiant { private String nom; private String prenom; private int Age; public Etudiant(String nom,String prenom, int Age){ this.nom = nom; this.prenom = prenom; this.Age= Age; } public String getNom(){ return this.nom ; } public String getpreNom(){ return this.prenom ; } public int getAge(){ return this.Age ; } }
  • 21. 21 Notions de base La notion de classe Nous allons commencer par vous exposer les notions de classe, d’objet et d’encapsulation à partir d’un exemple simple de classe. - Nous verrons d’abord comment créer une classe, c’est-à-dire écrire les instructions permettant d’en définir le contenu (champs ou données) et le comportement (méthodes). - Puis nous verrons comment utiliser effectivement cette classe au sein d’un programme.
  • 22. 22 Notions de base La notion de classe Nous allons commencer par vous exposer les notions de classe, d’objet et d’encapsulation à partir d’un exemple simple de classe. - Nous verrons d’abord comment créer une classe, c’est-à-dire écrire les instructions permettant d’en définir le contenu (champs ou données) et le comportement (méthodes). - Puis nous verrons comment utiliser effectivement cette classe au sein d’un programme.

Notes de l'éditeur

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22