Vous êtes sur la page 1sur 22

Cours Programmation Orientée

Objet (POO)
2eme année Licence-LMD

2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 1


Objectif
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
2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 2
Contenu
Contenu de
de la
la matière
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
2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 3
Chapitre
Chapitre 11 ::
Introduction
Introduction àà la
la Programmation
Programmation
Orientée
Orientée Objet
Objet

2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 4


De
Delalaprogrammation
programmationclassique
classiquevers
verslala
programmation
programmationorientée
orientéeobjet
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.

2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 5


De
Delalaprogrammation
programmationclassique
classiquevers
verslala
programmation
programmationorientée
orientéeobjet
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.

2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 6


De
Delalaprogrammation
programmationclassique
classiquevers
verslala
programmation
programmationorientée
orientéeobjet
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.
2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 7
De
Delalaprogrammation
programmationclassique
classiquevers
verslala
programmation
programmationorientée
orientéeobjet
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

2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 8


De
Delalaprogrammation
programmationclassique
classiquevers
verslala
programmation
programmationorientée
orientéeobjet
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?

2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 9


De
Delalaprogrammation
programmationclassique
classiquevers
verslala
programmation
programmationorientée
orientéeobjet
objet

Programmation classique Programmation Orienté e Objet

2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 10


La
Lacrise
crisedu
dulogiciel
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.

2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 11


Historique
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 ..

2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 12


Historique
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.

2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 13


Notions
Notionsde
debase
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.

2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 14


Notions
Notionsde
debase
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.
2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 15
Notions
Notionsde
debase
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.
2017/2018 LICENCE LMD 2eme année - Abdelkader ALEM 16
Notions
Notionsde
debase
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.
2017/2018
LICENCE LMD 2eme année - Abdelkader ALEM 17
Notions
Notionsde
debase
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.

2017/2018
LICENCE LMD 2eme année - Abdelkader ALEM 18
Notions
Notionsde
debase
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.

2017/2018
LICENCE LMD 2eme année - Abdelkader ALEM 19
Notions
Notionsde
debase
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 ;
}
} LICENCE LMD 2eme année - Abdelkader ALEM 20
Notions
Notionsde
debase
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.

2017/2018
LICENCE LMD 2eme année - Abdelkader ALEM 21
Notions
Notionsde
debase
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.

2017/2018
LICENCE LMD 2eme année - Abdelkader ALEM 22

Vous aimerez peut-être aussi