Vous êtes sur la page 1sur 28

PROGRAMMATION ORIENTÉ

OBJET AVEC JAVA


LSTI Génie logiciel S5
Module: I511
FST – Errachidia
2020/2021

Mohamed OUALLA
Bibliographie

https://www.pdfdrive.com/

2
Plan du cours

• Chp 1: Introduction générale

• Chp 2: Présentation du langage JAVA

• Chp 3: Les bases de Java

• Chp 4: Classes et objets

• Chp 5: Héritage et polymorphisme

• Chp 6: Compléments utiles

3
Introduction générale CHAPITRE I

• Introduction
• Langages de programmation
• Modes de fonctionnement des langages de programmation
• Types de langages de programmation

• Programmation Orientée Objet ?


• Quelques concepts de la POO
• Classe et Objet
• Abstraction et Encapsulation
• Héritage et Polymorphisme
CHAPITRE i

Introduction Introduction
générale

Calculer la
• Le besoin de communiquer avec l’ordinateur: somme de
001101010001
100101000111
deux nombres
10010
entiers
• Connaitre son langage (des 1 et des 0)

Alors c’est
Logiciel quoi un
programme et
(Programme) comment le
créer ?

Calculer la
somme de 00110101000110
deux nombres 01010001111001
entiers "Traducteur" 0

5
CHAPITRE i

Définitions Introduction
générale

• Un programme est une suite d'instructions définissant des opérations à exécuter par l’ordinateur.

• Une instruction est un ordre donné à un ordinateur.

• Pour écrire des programmes, on se sert d'une notation, appelée langage de programmation
destiné à décrire l'ensemble des instructions qu'un ordinateur doit exécuter.

• Java, Python, C, C++,

• etc.

6
CHAPITRE i

Langage de programmation Introduction


générale

Rédige un programme
à l’aide d’un langage
de programmation • Affiche la somme de 10 et 34 00110101011
• Calcule l'âge en fonction de la date
• Affiche l'âge calculé
développeur Programme Traducteur Exécute le code
(Code source) (Compilateur ou interpréteur)

Plusieurs façons de rédiger un Plusieurs façons de traduire


programme
→ Différents modes de
→ Différents types de langages fonctionnement de langages
de programmation. de programmation.
(Ex. POO) (Compilé, Interprété)

7
CHAPITRE i
Modes de fonctionnement des langages de Introduction
programmation générale

• Trois grands modes de fonctionnement des langages de programmation :

• Les langages interprétés.

• Les langages compilés.

• Les langages intermédiaires.

8
CHAPITRE i

Les langages interprétés vs compilés (1/2) Introduction


générale

Fichier contenant le code source


1. Affiche la somme de 10 et 34
Lance la
2. Calcule l'âge en fonction de la date
3. Affiche l'âge calculé compilation
Lecture Lecture Lecture
ligne 3 ligne 2 ligne 1

Compilateur
Interpréteur
Création de l’exécutable
OS
ligne 3 ligne 2 ligne 1
01100011 00011101010100011
Exécution

10001101
Exécution 11001010101000111
01011001110101001
00111100
Fichier compilé
Le processeur (exécutable)
exécute le code
9
CHAPITRE i

Les langages interprétés vs compilés (2/2) Introduction


générale

• Dans un langage interprété, le même code source pourra marcher directement sur n’importe
quel OS. Avec un langage compilé, il faudra (en général) tout recompiler à chaque modification
et chaque changement du OS. (Portabilité)

• Dans un langage compilé, le programme est directement exécuté sur l'ordinateur, donc il sera en
général plus rapide que le même programme dans un langage interprété. (Rapidité)

• Un programme compilé a pour avantage de garantir la sécurité du code source. Par contre, un
langage interprété, qui est directement lisible, permet à n'importe qui de connaître les secrets
de fabrication d'un programme et donc de copier et de modifier le code. (Sécurité)

10
CHAPITRE i

Les langages intermédiaires (Exemple Java) Introduction


générale

Code source Compilateur Fichier bytecode


(monFichier.java)
1. Affiche la somme de 10 et 34 Création du
Lance la monFichier.class
2. Calcule l'âge en fonction de la date
compilation bytecode
3. Affiche l'âge calculé

Les fichiers bytecode peuvent être envoyés sur

les ordinateurs clients où ils doivent s’exécuter


Ordinateur du
client

000111
monFichier.class 010101
000111
Fichier à Le processeur
Fichier bytecode Machine virtuelle exécuter OS Windows exécute le code
11
Langage Domaine d'application principal Compilé/interprété
CHAPITRE i
Exemple de ADA Le temps réél Introduction
Langage compilé
langages BASIC Programmation basique à but éducatif
générale
Langage interprété
C Programmation système Langage compilé
C++ Programmation système objet Langage compilé

Cobol Gestion Langage compilé


Fortran Calcul Langage compilé
Java Programmation orientée objet Langage intermédiaire

MATLAB Calcul mathématique Langage interprété


Mathematica Calcul mathématique Langage interprété
https://www.scr LISP Intelligence artificielle Langage intermédiaire
iptol.fr/program Pascal Enseignement Langage compilé
mation/liste- PHP Développement de sites web dynamiques Langage interprété
langages- Prolog Intelligence artificielle Langage interprété
programmation. Perl Traitement de chaînes de caractères Langage interprété
php#language-a Python Intelligence artificielle, calcul Langage intermédiaire
mathématique 12
CHAPITRE i

Types de langages de programmation Introduction


générale

• Les langages procéduraux

• Les langages orientés objets (L.O.O)

• Les langages fonctionnels

• Les langages logiques

• Les langages de spécification

• Les langages hybrides

13
CHAPITRE i

PP vs POO Introduction
générale

• PP: Basée sur les traitements : • POO: Basée sur les données :
• Décomposer le programme en un ensemble de • Définir les données intéressantes, et les regrouper
fonctions (modules) simples. dans des structures qui ont un sens.

• Définir les données à manipuler par ces fonctions. • Définir les méthodes d’accès à ces données, et les
calculs qui seront effectués dessus.
• Le programme est une liste des tâches et des
opérations à exécuter. • Le programme est l’ensemble des objets et des
interactions entre ces objets.
Données Objet 1
globales
Données

Méthodes :
Objet 2 Init() Objet 3
Trie()
Données Permute() Données

Fonction 1: Fonction 2: ……… Méthodes: Méthodes :


calcule() Factorise() Init() Supprime()
…… Calcule() Ajoute()
Données Données … Factorise() Insère()
locales locales 14
CHAPITRE i

Exemple: Inscription à la FSTE Introduction


générale

• Programmation procédurale: • Programmation orienté objet:


• Inscription en ligne • Etudiant
• Remplir le formulaire en ligne • Données: nom, prénom,…
• Données à traiter: nom, prénom, mention,… • Comportement: s’inscrire en ligne, déposer le
• Envoyer le formulaire dossier, …

• Inscription finale • Scolarité


• Déposer le dossier • Données: dossiers des étudiants, …
• Comportement: Etudier le dossier, répondre le
• Validation de l’inscription
candidat, …
• Etudier le dossier
• Verdict du jury
• Etc.
15
CHAPITRE i

PP vs POO Introduction
générale

Programmation Procédurale Programmation Orientée Objet

Le programme principal est divisé en


Le programme principal est divisé en petites
petit objet en fonction du problème.
Programmes parties selon les fonctions. Structuration
Conception d’un logiciel à la manière de
"descendante" du programme
la fabrication d’une voiture

Les données et les fonctions de chaque


Chaque fonction contient des données
Les données objet individuel agissent comme une
différentes.
seule unité.

La Les fonctions communiquent avec d’autres Un objet est lié à l’autre en utilisant le
communication fonctions en conservant les règles habituelles. message qui passe.

Les fonctions ou les algorithmes ont plus


Les données prennent plus d’importance
Importance d’importance que les données dans le
que les fonctions du programme.
programme.
Exemples Pascal, Fortran PHP5, C ++, Java. 16
CHAPITRE I

Programmation Orientée Objet (POO) Introduction


générale

• La programmation orientée objet (POO) est un paradigme de programmation inventé au début


des années 1960 (le langage SIMULA en 1967).

• POO est une programmation dans laquelle un programme est organisé comme un ensemble
d'objets disposant de ressources et de moyens pour interagir entre eux.

• POO permet de décrire le problème avec les termes mêmes du problème plutôt qu'avec les
termes de la machine.

17
CHAPITRE I

Quelques concepts de la POO Introduction


générale

• Classe et Objet

• Abstraction

• Encapsulation

• Héritage

• Polymorphisme

18
CHAPITRE I

1- Classe et Objet: Objet Introduction


générale

• Un objet représente toute entité du monde physique (matériel), un concept ou une idée
(immatériel).

• Exemple: une voiture, une personne, une facture, un nombre complexe, …

• Un objet est caractérisé par une identité, des états significatifs et un comportement.

• Identité: Permet de distinguer les objets les uns par rapport aux autres.

• Etat: Correspond aux valeurs de tous les attributs (Données) à un instant donné.

• Comportement: Se défini par l’ensemble des opérations (Méthodes) qu’il peut exécuter en
réaction aux messages envoyés par les autres objets.

• Un message = demande d’exécution d’une opération

19
CHAPITRE I

1- Classe et Objet: Exemple d’un objet Introduction


générale

• Dans une usine, l’objet voiture1 est caractérisé par:


• Son identité : voiture1
• Son état:
Identité :voiture1
voiture1
• marque: Renault
• modèle : Megane marque: Renault
modèle : Megane
• couleur : Noire
Etat couleur : Noire
• moteur: Diesel, 85 Chevaux moteur: Diesel,
Diesel; 85 Chevaux
• Son comportement: demarrer()
Démarrer()
• demarrer() Comportement arreter()
Arrêter()
• arreter() peindre(NouvColor)
Peindre(NouvColor)
• peindre(NouvColor) getModele()
GetEtat()
• getModele()

20
CHAPITRE I

1- Classe et Objet: Classe Introduction


générale

• Les objets qui ont les mêmes attributs et les mêmes comportements sont regroupés dans des
classes.

• Un objet est une variable (presque) comme les autres. Il faut notamment qu’il soit déclaré avec
son type (le nom de la classe).

• Le type d’un objet est un type complexe (par opposition aux types primitifs entier, caractère,
etc.) qu’on appelle une classe.

• Les classes servent de « moules » pour la création des objets.

• Un objet est une instance (exemplaire) d’une classe.

• Une classe possède des membres :


• Attributs : les éléments données de la classe.

• Méthodes : fonctions qui donnent accès ou modifient les attributs.


21
CHAPITRE I
1- Classe et Objet: Exemple d’une classe et ses Introduction
objets générale

:voiture1

(Instances ou exemplaires)
marque : Renault
Classe modèle : Megane
année : 2009
Voiture
marque : String :voiture2
Attributs modèle : String

Objets
marque : Peugeot
année : int modèle : 308
demarrer() : void Instanciation année : 2016
arreter() : void
Méthodes :voiture3
peindre(String) : void
getModele() : String marque : BMW
modèle : BMW série 3
année : 2018

22
CHAPITRE I

1- Classe et Objet: Exercice Introduction


générale

• Représenter les classes suivantes avec deux objets pour chacune:

• Point: qui représente un point de l’espace géométrique, caractérisé par ses coordonnées;
l’abscisse et l’ordonnée.
• Cette classe possède les méthodes suivantes:
• deplacerX: déplacer un point d'une longueur sur l'axe des x.
• deplacerY: déplacer un point d'une longueur sur l'axe des y.

• Carré: qui représente un carré en géométrie, caractérisé par la longueur de son coté et le point
qui représente son coin supérieur gauche.
• Cette classe possède les méthodes suivantes:
• claculerPerimetre: Calculer son périmètre.
• calculerSurface: Calculer son air.
• changerPosition: Changer sa position. 23
CHAPITRE I

1- Classe et Objet: la classe Point Introduction


générale

Objets

Classe :p1
abscisse : 2
Point ordonnee : 10
abscisse : int
ordonnee : int
Instanciation
deplacerX(int longueur) : void :p2
deplacerY(int longueur) : void abscisse : 25
ordonnee : 12

24
CHAPITRE I

2- Abstraction Introduction
générale

• L’abstraction, en informatique, est une manière de représenter des objets qui appartiennent au
monde réel dans un modèle informatique convenable en se limitant aux aspects utiles pour
l’utilisateur de cet abstraction.
• Dans un programme de gestion du personnel, un professeur peut être représenté par une classe ayant
comme attributs: CIN, nom, prénom et grade.
• Dans un programme de gestion des emplois, ce même professeur peut être représenté par une classe
ayant comme attributs: nom, prénom et matière.

• Abstraction par simplification: simplifier une réalité complexe, elle consiste à négliger ce qui
n’a pas d’importance (variable, classe, etc.)
• Abstraction par généralisation: consiste à remonter du particulier vers le général (héritage,
polymorphisme)
• L’abstraction, en OO, est un processus permettant de construire des classes pertinentes, dans le
domaine d'application considéré en réduisant le monde réel afin d'en gérer la complexité .
25
CHAPITRE I

3- Encapsulation Introduction
générale

• L'encapsulation est un moyen de présenter une abstraction par le fait de rassembler les données
et les méthodes au sein d'une même classe en cachant l'implémentation de l'objet.

• C’est un mécanisme de masquage des données, permettant d’empêcher objet


l'accès aux données par un autre moyen que les méthodes proposées. Données

Autre
objet
Méthodes
• Trois niveaux d'encapsulation:
• Le niveau privé : les attributs sont masqués à l’intérieur d’un objet et l'accès à ces données est limité
aux méthodes de la classe elle-même. Niveau de protection le plus élevé.

• Le niveau protégé: l'accès aux données est réservé aux méthodes des classes dérivées .

• Le niveau public : l'accès aux données peut être fait par les méthodes de toutes les classes. Niveau de
protection le plus bas. 26
CHAPITRE I

4- Héritage Introduction
générale

• L’héritage définit une relation de classification (généralisation-spécialisation) entre une classe


plus générale ou super-classe, et une ou des classe(s) plus spécifique(s) ou sous-classes .

• L'héritage est un mécanisme par lequel une super-classe partage ses attributs et ses opérations
avec ses sous-classes.
Forme

Généralisation
Spécialisation

Rectangle Triangle

Carre

• L’héritage permet la réutilisation du code et l’organisation hiérarchique des classes.


27
CHAPITRE I

5- Polymorphisme Introduction
générale

• Le polymorphisme décrit la caractéristique d'un élément qui peut se présenter sous des formes
différentes.

• Le polymorphisme d’objet: Un objet peut appartenir à plus d'un type (héritage). On raffine un
type-père en un autre type (le sous-type) par des restrictions sur les valeurs possibles des
attributs. Ainsi, les objets de ce sous-type sont conformes avec le type père.

• Le polymorphisme de méthode: On dit qu'une méthode est polymorphe si elle réalise des actions
différentes selon la nature des objets sur lesquels elle s’applique:

• Surcharge,

• Redéfinition,

• Méthodes abstraites. 28

Vous aimerez peut-être aussi