Vous êtes sur la page 1sur 39

Université de Jendouba

Institut Supérieur d’Informatique du Kef

LATRI - Licence Appliquée en technologies des Réseaux Informatiques


1ere année LATRI Groupe : A+B

Programmation Orientée Objet (P.O.O.)

Mlle Houda ZOUHAIER (Houda.zouhaier@gmail.com)

Année Universitaire 2017-2018


Objectifs du cours

Les principaux objectifs de ce module sont :

acquérir les compétences nécessaires pour écrire des programmes en


Java et se familiariser avec sa syntaxe.

maîtriser la manipulation des types primitifs, des opérateurs, des


structures de contrôles et des tableaux en Java.

apprendre les concepts de base de la Programmation Orientée


Objet (P.O.O.) en Java: objet, instance, classe, interface, héritage,…

2
Objectifs du cours

apprendre à gérer les exceptions (déclenchement et traitement,


cheminement).

manipuler les Entrées/Sorties Java: lecture à partir du clavier, écriture


dans un fichier texte et analyse lexicale d’une chaine de caractères.

Créer des interfaces graphiques et gérer les évènements.

3
Prérequis
Notions d’algorithmique,
Notions de base de la programmation.

Evaluation
70 % : Examen final,
20% : un ou deux contrôles continus,
10% : note de travaux pratiques .
Plan du cours
Chapitre 1 : Introduction à la Programmation Orientée Objet
Chapitre 2 : La syntaxe du langage Java
Chapitre 3 : Les classes et les objets
Chapitre 4 : L’héritage
Chapitre 5 : Les classes abstraites et les interfaces
Chapitre 6 : Les exceptions
Chapitre 7 : Les flux (entrées/sorties)
Chapitre 8 : Les threads
Chapitre 9 : Les interfaces graphiques (swing)

5
Chapitre 1: Introduction à la
Programmation Orientée Objet

6
Logiciel

Définition:
Un logiciel est un ensemble composé d'un ou plusieurs programmes,
ainsi que les fichiers nécessaires pour les rendre opérationnels.

Cycle de vie d’un logiciel


Définition:

Le « cycle de vie d'un logiciel » désigne toutes les étapes du


développement d'un logiciel, de sa conception à sa disparition.

7
Cycle de vie d’un logiciel

Il existe différents types de cycles de développement entrant dans la


réalisation d'un logiciel (cycle itératif, Modèle en cascade, Cycle en V, Cycle
en spirale, etc.).

Le cycle de vie d'un logiciel peut être décomposé en trois grandes phases :
• une phase d’analyse, étude de faisabilité, cahier des charges,
analyse et spécification des besoins.
• une phase de développement qui consiste à réaliser le logiciel,
• une phase de maintenance qui consiste à corriger et à faire évoluer
le logiciel.

8
Cycle de vie d’un logiciel

Analyse
Pré-analyse

Analyse
Développement

Conception

Programmation Maintenance
Test
Maintenance

9
Les facteurs de qualité d’un logiciel

La correction : capter et traiter les différents cas d’erreurs possibles.


La robustesse : capacité d’un logiciel à répondre à des situations
d’anormales.
L’extensibilité : facilité du logiciel à s’adapter aux changements de
spécification.
La réutilisabilité : capacité des éléments du logiciel à être réutilisés.
L’efficacité : permet à ses utilisateurs d’atteindre le résultat prévu en
utilisant un minimum de ressources.
La portabilité : peut s’exécuter sur différente plateformes ou systèmes
d’ exploitations.

10
Qu’est ce que la Système informatique?

Définition:
Un système informatique est un ensemble d'équipements destiné au
traitement automatique de l'information.

Le schéma simplifié d'un système informatique peut se résumer par la


formule :

Système informatique = Structures de données + Traitements

11
Problématique de la programmation

Lors de la production d’un système informatique, le programmeur a


deux grandes options :

s’orienter vers la programmation procédurale,


s’orienter vers la programmation orientée Objet.

12
Qu’est ce que la Programmation procédurale?

Les premiers concepteurs de système informatique ont adopté cette


approche : systèmes d'exploitation, gestionnaires de fenêtres, logiciels de
gestion, logiciels de bureautique, logiciels de calcul scientifique, etc.
De nombreux systèmes informatiques sont encore développés selon cette
approche.

Principe :

On sépare les données des moyens de traitement de ces données [1].

13
Qu’est ce que la Programmation procédurale?

14
Qu’est ce que la Programmation procédurale?

La programmation procédurale est basée sur le concept d'appel


procédural.
Une procédure (ou fonction) contient simplement une série d'étapes
(instructions) à réaliser.
Une procédure peut être appelée à n'importe quelle étape de l'exécution
du programme, y compris à l'intérieur d'autres procédures, voire dans la
procédure elle-même (récursivité).

15
Qu’est ce que la Programmation Orientée Objet ?

Principe:

La programmation orientée objets (POO) est une technique


d'organisation du code d'un programme en le groupant en objets.

La POO propose de bâtir un système basé autour d'objets et de


concepts existant dans le monde réel.

Un objet comporte des informations (des valeurs de données) et des


fonctionnalités (traitements, actions) associées à ces informations.

On regroupe dans une même entité informatique, appelé objet, les


données et les moyens de traitement de ces données.
16
Qu’est ce que la Programmation Orientée Objet ?

La construction d'un système va s'axer principalement sur la


détermination des données dans un premier temps et des traitements
agissant sur ces données dans un second temps.

Cette approche permet de bâtir des systèmes plus simples à


maintenir et à faire évoluer.
17
L’approche Orientée Objet

Idée de base de l’Approche Orientée Objet (A.O.O.) repose sur


l’observation de la façon dont nous procédons dans notre vie de
tous les jours. Modéliser le réel : objet

Nous sommes entourés d'objets que nous manipulons.

Définition : Un objet représente une entité du monde réel, ou de


monde virtuel dans le cas d’objets immatériels.
Il se caractérise par une identité, des états significatifs et par un
comportement [2].

18
L’approche Orientée Objet

L’identité d’un objet permet de distinguer les objets les uns par rapport
aux autres.
L’état d’un objet correspond aux valeurs de tous les attributs à un instant
donné.
Le comportement d’un objet se défini par l’ensemble de ces opérations
(traitements).

Objet
Attribut 1, attribut 2
Attribut 3…

Méthode 1
Méthode 2…

19
L’approche Orientée Objet

Exemple:
Structure d’une classe
public Class Personne {
int CIN;
String Nom; Attribut(s)
String Prenom;
int Age;
Void afficherInfo() {…}; Méthode(s)
}

20
L’approche Orientée Objet

Un programme est vu comme un ensemble d’entités.

Au cours de son exécution, ces entités collaborent et s’envoient des


messages.

21
Vue d’ensemble sur la POO

1. L’objet
2. Classe
3. Encapsulation
4. Polymorphisme
5. Héritage

22
1. L’objet
Définition:

Un objet est une entité autonome, qui regroupe un ensemble de


données cohérentes (attributs) et de traitements associés
(méthodes).
Objet = Attributs + méthodes

Exemple: un objet "Télévision"


• son identité = référence (numéro de série)
• ses états = {allumé/éteint, chaîne courante, volume du son, …}
• ses comportements = {allumer, changer de chaîne, changer de
volume du son, éteindre, …}
23
2. Classe

Définitions:

On appelle classe la structure (modèle) d'un objet, i.e., la


déclaration de l'ensemble de membres (attributs + méthodes) qui
composeront un objet [3].

Une classe est un élément du programme qui décrit un type


abstrait de données [4].

24
2. Classe

Définition:
Une classe est un modèle de définition pour des objets ayant:

• même structure (même ensemble d'attributs),


• même comportement (mêmes méthodes),
• une sémantique commune.

Nom de la classe

Attributs

Méthodes

25
Notation UML
2. Classe
Une classe peut être réutilisée pour instancier plusieurs objets.
Une instance de classe = Un Objet.
Objets ou instances
CIN: 06987456
Nom : YOUSFI
public Class Personne {
Prenom : Ali
int CIN; Age : 24
String Nom; CIN: 78654349
instanciation
String Prenom; Nom : JABALLAH
Prenom : Mohamed
int Age; Age : 26
Void afficherInfo() {…};
CIN: 45678987
} Nom : BALTI
Prenom : Ines
Age : 22 26
2. Classe
Instants particulièrement importants:

• naissance d'un objet : appelée instanciation (construction),


• et mort d'un objet : appelée destruction.

Classe Instance Instance

Construction Destruction
(constructeur) (destructeur)

27
2. Classe

Il est important de saisir la différence entre les notions de classe et


instance de la classe [1] :
classe = attributs + méthodes + mécanismes d'instanciation +
mécanismes de destruction
instance de la classe = valeurs des attributs + accès aux méthodes
L'instanciation: est le mécanisme qui permet de créer une ou plusieurs
instances dont les traits sont décrits par la classe.
La destruction: est le mécanisme qui permet de détruire une ou
plusieurs instances de la classe.
L'ensemble des instances d'une classe constitue l'extension de la classe.

28
3. Encapsulation
Définition:
Le terme encapsulation désigne le principe consistant à cacher
l'information contenue dans un objet et de ne proposer que des
méthodes de modification/accès à ces attributs [1].

L'objet est vu de l'extérieur comme une boîte noire ayant certaines


propriétés et ayant un comportement spécifié.
La manière dont le comportement a été implémenté est cachée aux
utilisateurs de l'objet.
Intérêt: Protéger la structure interne de l'objet contre toute
manipulation non contrôlée, produisant une incohérence.

29
3. Encapsulation
L'encapsulation nécessite la spécification de parties publices et privées
de l'objets:

Éléments publics : correspond à la partie visible de l'objet depuis


l'extérieur. c'est un ensemble de méthodes utilisables par d'autres
objets (l’environnement).

Éléments privées : correspond à la partie non visible de l'objet. Il est


constitué des éléments de l'objet visibles uniquement de l'intérieur de
l'objet et de la définition des méthodes.

30
3. Encapsulation
Avantages de l'encapsulation:

L’accès aux attributs d'une classe peut être en lecture seule ou


écriture seule.

Une classe peut avoir un contrôle total sur ce qui est stocké dans
ses champs.

Les utilisateurs d'une classe ne savent pas comment la classe


stocke ses données.

31
4. Polymorphisme
Polymorphisme = poly + morphisme

plusieurs forme

Définition:

Le polymorphisme est la capacité d’un objet à posséder plusieurs formes.

32
4. Polymorphisme
Surcharge : Dans une classe on peut avoir plusieurs fonctions qui portent
le même nom mais qui ont des implantations différentes :

- la possibilité de définir des comportements différents pour la même


méthode selon les arguments passés en paramètres et les types de retour.

Redéfinition : Une classe peut "redéfinir" (c’est-à-dire modifier) certaines


des méthodes héritées de sa classe mère (tout en gardant la même
signature de ces méthodes).

33
4. Polymorphisme

Exemple 1:
Si l'on considère une classe Addition possédant une méthode nommée
Somme, on peut spécifier un comportement différent selon qu'elle est
invoquée (appelée) avec deux argument de type entier ou deux arguments
de type flottant :

− Somme (2, 5)
− Somme (2.3, 5.4)

34
4. Polymorphisme

Exemple 2:
Si l'on considère deux types d'objets voiture et moto possédant tous les
deux une méthode démarrer.
Cette méthode est implémentée différemment selon le type de véhicule.

Véhicule

Voiture Moto

35
5. Héritage

Le développement de logiciel nécessite la mise en œuvre d’un


grand nombre de classes : beaucoup sont des variantes d’autres.
idée: il est nécessaire d’utiliser un mécanisme de classification.
ce mécanisme s’appelle « héritage ».

Utilisation de l’héritage:

Personne

Spécialisation Généralisation

Etudiant Enseignant

36
5. Héritage

Utilisation de l’héritage:

dans le sens “généralisation” pour factoriser les propriétés


communes aux sous-classes,

dans le sens “spécialisation” pour réutiliser par modification


incrémentielle les descriptions existantes (méthodes).

37
5. Héritage
La sous classe ou classe fille (ex. Etudiant) possède des attributs et des
méthodes définis dans la superclasse ou classe mère (ex. Personne).
Exemple : public class Etudiant extends Personne {
int noEtudiant;
public class Personne {
String nom; public Etudiant(String n, String p, int numE) {
nom = n;
String prenom;
prenom = p;
noEtudiant = numE;
public void afficherInfos()
}
{System.out.println(nom+
public void afficherInfos()
" "+prenom);}
{System.out.println(noEtudiant + " "+ nom
}
+ " "+ prenom);}
} 38
Fin du chapitre 1

39

Vous aimerez peut-être aussi