Programmation Orientée Objet
(JAVA)
2 Année LMD Informatique Hammache A.
(2019-2020) arezki20002002@[Link]
[Link] 1
Plan du Cours
Introduction
Concepts de l’Orienté Objet
Syntaxe de Java
Objets et classes
Héritage et polymorphisme
Classes abstraites et interfaces
Les exceptions
Les collections d’objets
Les interfaces graphiques
[Link] 2
Introduction
[Link] 3
Quelques notions
Algorithme: méthode pour résoudre un problème. Pour un problème
donné, il peut y avoir plusieurs algorithmes ou aucun !
Programme: est le codage en langage de programmation de
l’algorithme, ce programme est lisible par l’ordinateur.
Le langage de programmation: est l'intermédiaire entre l'humain et la
machine, il permet d'écrire dans un langage proche de la machine
mais intelligible par l'humain les opérations que l'ordinateur doit
effectuer. Quelques uns des plus connus: C, C++, Pascal, Java, python.
Langage machine: est une succession de 0 et de 1.
Compilateur (interpréteur): est un programme qui permet de
transformer un programme (fichier source) écrit dans un langage de
programmation en un programme en langage machine (fichier
exécutable).
[Link] 4
D’un problème à une solution informatique
Homme Machine
Fichier source
Programme
Problème Algorithme
… (Langage)
Résolution d’équation 2nd Calculer delta …
delta=a*a-4*b*c
degrés? Si delta >0 alors
if (delta>0)
…. {
Compilateur
/
Interpréteur
Données Exécutable
5 4 1 (a,b,c)
Code machine
…
00011001
Résultats 10011001
??? …
[Link] 5
Niveaux des langages de programmation
Langage Humain Haut niveau :
proche de
(Kabyle, Français, Arabe) l’homme,
vocabulaire et
syntaxe plus riches
JAVA, C++, (Objets)
C , Pascal (fonctions, procédures) Bas niveau : proche
de la machine,
instructions
Assembleur (mnémonique : add) élémentaires
Langage Machine (01111001..)
[Link] 6
Les familles de langages de programmation
On distingue habituellement deux grandes familles
de langages de programmation:
1. Les langages orientés procédures: (ex :pascal, le
C). Algorithmes (fonctions, procédures) +
Données = Programme.
2. Les langages orientés objet: (ex : C++, JAVA)
Méthodes + Données = Objet (Classe).
[Link] 7
Langages procéduraux
Un programme est composé de Données
plusieurs procédures (ou fonctions):
Qui effectuent un traitement sur Traitement 1
des données (procédures). Traitement 2
Qui retournent une valeur après Traitement 3
leur invocation (fonctions).
nom, prénom, nomModule, numGroupe,
Certains langages ne distinguent pas numSalle, ….
entre les procédures et les fonctions.
Inscription
Exemples de langages procéduraux ou Affectation
fonctionnels : Fortran, Lisp, C, … Deliberation
[Link] 8
Langages Orientés Objet
D
Un programme est composé d’un ou T
plusieurs objets qui contiennent:
D D
Des données "internes". T
T
Des traitements manipulant ces
D
données internes ou d'autres D
T T
données.
Les données d'un objet sont appelés Nom, prénom
ses attributs et ses traitements sont ajouter
ses méthodes (ou opérations). Num_groupe
Num_salle
ajouter ajouter
Exemples de langages orientés objet:
SmallTalk, C++, Java, Python, PHP. Num_Res, Heure
Num_Module
affecter ajouter
[Link] 9
Chapitre I :
Concepts de l’Orienté Objet
[Link] 10
Plan du Chapitre
Objet
Classe
Encapsulation
Héritage
Polymorphisme
[Link] 11
Objet
Approche procédurale :
"Que doit faire mon programme ?"
Approche orientée objet :
"De quoi doit être composé mon programme ?"
Cette composition est la conséquence d'un choix de modélisation fait
pendant la conception
Un objet est une abstraction d’une entité du monde réel
Exemple: Gestion d'une bibliothèque
Germinal
E. Zola
Liberté [Link]
[Link]
Directrice
Lectrice
Le seigneur des anneaux [Link]
[Link] Lecteur
[Link]
Bibliothécaire
[Link] 12
Classe
Des objets similaires peuvent être informatiquement décrits par une même
abstraction : une classe
Même structure de données et mêmes méthodes de traitement
Valeurs différentes pour chaque objet
Classe Lecteur
Classe Livre Classe Employé -nom, prénom
-titre, auteur Classe Journal -nom, prénom, statut
-titre
Germinal
E. Zola Liberté [Link]
[Link]
Directrice
Lectrice
Le seigneur des anneaux [Link] [Link]
[Link] Bibliothécaire Lecteur
[Link] 13
Encapsulation
L'encapsulation est la pratique consistant à regrouper des attributs au sein
d'une même classe.
Pour améliorer la lisibilité des
programmes.
Protéger les données: l’accès est
réalisé par des méthodes publiques
(interface de l’objet).
[Link] 14
Héritage (La généralisation / spécialisation)
L’héritage autorise une classe d’objet de bénéficier de la structure
des données et du comportement d’une classe « mère » tout en lui
permettant de les affiner et ce, afin de prendre en compte les
spécificités de la classe « fille » sans avoir cependant à redéfinir ce
que les deux classes ont en commun.
Généralisation = recherche des similitudes
Identifier les objets du monde réel connus par le système
Regrouper les objets en classes
Généraliser les classes en super classes
La généralisation est caractérisée par l’expression : « est un type de »
[Link] 15
Un exemple d’héritage
Exemple : gestion d’une bibliothèque
Classes
mères Classe Personne
Classe Ouvrage
-nom, prénom
-titre
Classe Employé Classe Lecteur
Classe Livre Classe Journal -grade -type
-auteur -périodicité
Germinal
Liberté [Link]
E. Zola [Link]
Directrice
Lectrice
[Link]
Le seigneur des anneaux
[Link] Lecteur
[Link]
Bibliothécaire
[Link] 16
Un autre exemple d’héritage
Classes mères
Moyen de transport
<<hérite>>
Classes
filles
Tracteur Train Voiture
Monde réel
(objets)
[Link] 17
Polymorphisme
Offre la possibilité d’associer à un comportement (méthode),
une implémentation différente en fonction de l’objet auquel
on se réfère.
Forme
Personne dessiner()
dessiner()
Sanctionner() Sanctionner() dessiner()
Employé Lecteur
[Link] 18
Avantages de la Programmation Orientée
Objet
Facilite l’évolution du code.
Facilite la réutilisation de code.
Une meilleure sécurité (encapsulation).
Améliore la conception et la maintenance des grands
systèmes.
Permet la Programmation par « composants ».
Conception d’un logiciel à la manière de la fabrication d’une
voiture.
[Link] 19