43
Programmation orientée objet Paradigmes Notions

Programmation orientée objet

  • Upload
    brosh

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

Programmation orientée objet. Paradigmes Notions. Constats. Il y a beaucoup de manières à écrire un programme qui effectue une tâche spécifiée. La manière de programmation dépende du langage utilisé. Le langage utilisé dépende de la manière de programmation. Paradigmes de programmation. - PowerPoint PPT Presentation

Citation preview

Page 1: Programmation orientée objet

Programmation orientée objet

Paradigmes

Notions

Page 2: Programmation orientée objet

Constats Il y a beaucoup de manières à écrire un programme qui effectue une tâche spécifiée. La manière de programmation dépende du langage utilisé. Le langage utilisé dépende de la manière de programmation.

Page 3: Programmation orientée objet

Paradigmes de programmation

programmation procédurale : P.P. (Pascal, C, etc.)

programmation orientée objet : P.O.O. (C++, Java, Delphi)

etc.

Page 4: Programmation orientée objet
Page 5: Programmation orientée objet

Programmation procédurale(rappel de C) le programme est composé des fonctions les données (variables) sont créées à

l’intérieure des fonction ou bien passées comme paramètres

il y a un programme principal (main)

Page 6: Programmation orientée objet

Un programme en C

Page 7: Programmation orientée objet

Limitations Il n’y a pas de méthode ou de cadre pour

bien organiser les fonctions. Les modifications d’une fonction entraînent

d’autres modifications dans autre fonctions, etc. – la portée d’une modification est trop grand et difficile à gérer.

Redondance dans le code (la même chose est codé plusieurs fois)

Propagation des erreurs – déboggage difficile

Page 8: Programmation orientée objet

Est-ce qu’il faut oublier le C?

NON!Vous allez avoir le

choix parmi plusieurs

méthodes de programmation!

Page 9: Programmation orientée objet

Paradigme orienté objet Comment peut on y arriver? Introduction des nouvelles (?) notions

– objet (objektum)– classe (osztály)– instanciation (példányosodás) – hiérarchie des classes (osztályhierarchia)– héritage (öröklődés)– événement (esemény)

On va utiliser ces notions pour introduire le paradigme de programmation orientée objet.

Page 10: Programmation orientée objet

Objet (exemple / fenêtre)

propriétés d’une fenêtre– ouverte/fermée– cassée/intacte– taille– sens d’ouverture– type de verre– coefficient de réflexion de chaleur

Pour une fenêtre concrète, ces propriétés ont des valeurs.

Page 11: Programmation orientée objet

Objet (exemple / fenêtre)

opérations avec une fenêtre donnée– ouvrir– fermer– casser– réparer– changer la verre

Page 12: Programmation orientée objet

Objet (exemple / livre)

propriétés d’un livre dans une bibliothèque– état (emprunté / disponible / perdu)– date de la fin de l’emprunt– titre– auteur– nombre de pages

Pour un livre donné, ces propriétés ont des valeurs!

Page 13: Programmation orientée objet

Objet (exemple / livre)

opérations sur un livre d’une bibliothèque– emprunter– rendre– perdre– voler

Page 14: Programmation orientée objet

Objet (définition)

Un objet est un ensemble des propriétés ayant des valeurs et des actions (opérations ou méthodes) agissant sur les valeurs de ces propriétés.

Remarque: c’est la tâche qui nous dira quelles sont les propriétés et les méthodes qu’on doit prendre en compte dans le programme.

Page 15: Programmation orientée objet

Objet (exercice)

Propriétés intéressantes? Actions intéressantes?

(pour une compétition, pour une entreprise qui loue des voitures, etc…)

Page 16: Programmation orientée objet

Classes

La classification des choses se fait par abstraction.

Il faut trouver les caractéristiques communes des éléments de la classe. En effet, ces sont ses caractéristiques qui définissent une classe.

Page 17: Programmation orientée objet

Classe des objets Les objets ayant des mêmes propriétés et

les mêmes méthodes peuvent être mis dans une classe.

Une classe sera définie par les propriétés et les méthodes sur ses éléments.

Page 18: Programmation orientée objet

Classe des livres

propriétés – état (emprunté /

disponible / perdu)

– date de la fin de l’emprunt

– titre– auteur– nombre de pages

méthodes – emprunter– rendre– perdre– voler

Page 19: Programmation orientée objet

Classe des fenêtres

propriétés– état d’ouverture

(ouverte/fermée)– état (cassée/intacte)– taille– sens d’ouverture– type de verre– coef de réflexion de

chaleur

méthodes– ouvrir– fermer– casser– réparer– changer la verre

Page 20: Programmation orientée objet

Classe

Une classe est un ensemble des propriétés et des méthodes.

propriétés

méthodes

Dans le programme

variables

procédures (code)

ENCAPSULATION

Page 21: Programmation orientée objet

Une classe dans un programme une classe est une collection de données et

des méthodes sur ces données. Une classe est une encapsulation des

données et du code. La notion de l’encapsulation est la création

des classes– donne une organisation naturelle des fonctions

(méthodes)– permet d’effectuer la modification locale du

code

Page 22: Programmation orientée objet

Exemple dans un langage de programmation (JAVA) public class Cercle;{

double Rayon;public double calculerAire(){

return Rayon * Rayon * 3.1415;}

}

Page 23: Programmation orientée objet

Instanciation (példányosodás)

Un objet est une instanciation d’une classe Les propriétés (i.e. des variables) de la

classe ont des valeurs. Les méthodes de la classe fonctionnent sur

l ’objet.

Page 24: Programmation orientée objet

Une instance de la classe livre

propriétés – état = emprunté– date de la fin de l’emprunt

= 2003/03/20– titre = Concepts of object-

oriented programming– auteur = David N. Smith– nombre de pages = 189

méthodes – emprunter– rendre– perdre– voler

Page 25: Programmation orientée objet

Comment créer un objet?

Dans chaque classe, il y a une méthode spéciale:

La méthode constructeur

Cette méthode permet de créer un nouveau objet de la classe en définissant les valeurs des propriétés et en donnant accès aux méthodes sur cette objet.

Page 26: Programmation orientée objet

Une instance de la classe livre

propriétés – état = emprunté– date de la fin de l’emprunt

= 2003/03/20– titre = Concepts of object-

oriented programming– auteur = David N. Smith– nombre de pages = 189

méthodes – emprunter– rendre– perdre– voler– livre

méthodeconstructeur

Page 27: Programmation orientée objet

Exemple dans un langage de programmation (JAVA) public class Cercle;{

double Rayon;public double calculerAire(){

return Rayon * Rayon * 3.1415;}Cercle(double r) // constructeur{

Rayon = r;}

}

Page 28: Programmation orientée objet

Objet comme valeur d’une propriété

Un objet peut être la valeur d’une propriété

Page 29: Programmation orientée objet

Exemple

On définit la classe des roues Ensuite, on définie la classe des voitures Pour une voiture donnée, on a quatre roues

qui sont de la classe des roues.

Page 30: Programmation orientée objet

Exemple dans un langage de programmation

public class Dessin

{

Cercle Composant1;

double surfaceDessin;

}

Page 31: Programmation orientée objet

Exemple (objet comme valeur d’une propriété)

méthodes – obtenir prix– auteur

propriétés – nom (String)– prénom (String)– état (mort/vivant)– prix (liste)

Classe auteur

Page 32: Programmation orientée objet

Exemple (objet comme valeur d’une propriété)Classe livre

propriétés – état (emprunté / disponible

/ perdu)– date de la fin de l’emprunt– titre– auteur– nombre de pages

méthodes – emprunter– rendre– perdre– voler– livre

La valeur est une instanciation de la classe auteur

Page 33: Programmation orientée objet

Hiérarchie des classes

Example : classification des espèces (Darwin)

La hiérarchie va des classes générales vers les classes spécifiques

véhicle

voiture

4x4

camion

utilitaire

moto

Page 34: Programmation orientée objet

Hiérarchie des classes

voiture

utilitaire

classe mère

classe dérivée

Page 35: Programmation orientée objet

Héritage (öröklődés)

la classe dérivée possède – TOUTES LES PROPRIETES DE SA CLASSE

MERE– TOUTES LES METHODES DE LA CLASSE

MERE

Page 36: Programmation orientée objet

Héritage des propriétés (exemple)

voiture

fabriquant

chauffeur

Utilitaire

fabriquant, chauffeur

cargaison

quantité

Propriétés héritées

Page 37: Programmation orientée objet

Héritage des méthodes (exemple)

voiture

démarrer

arrêter

Utilitaire

démarrer, arrêter

charger

décharger

Méthodes héritées

Page 38: Programmation orientée objet

Exemple dans un langage de programmation

public class CercleUnitaire extends Cercle

{

CercleUnitaire()

{

Rayon=1;

}

}

Page 39: Programmation orientée objet

Hiérarchie des classes Exercice : donnez une classification

hiérarchique de quelques éléments de dessins (ligne, triangle, carré, losange cercle, etc.)

Exercice : donnez une classification hiérarchique d’une base de données des livres dans une bibliothèque

Exercice : donnez une classification hiérarchique de ce que vous voulez.

Page 40: Programmation orientée objet

Un programme orienté objet

modélisation du domaine à l’aide des classes

définition des classes création des instances (peut être

dynamique) messages entre les objets (appel des

méthodes)

Page 41: Programmation orientée objet

Interface vers l’utilisateur L’interface vers l’utilisateur est une

collection des objets (boutons, champs de texte, menu déroulant, etc.)

L’utilisateur dispose des actions sur les éléments de l’interface (sélectionner, cliquer, double cliquer, etc.)

Une action correspond à un événement qui déclenche l’exécution d’une méthode.

Page 42: Programmation orientée objet

Un programme orienté objet

d o n n é e s

O b je t

c o d ed o n n é e s

O b je t

c o d e

d o n n é e s

O b je t

c o d e

d o n n é e s

O b je t

c o d e

d o n n é e s

O b je t

c o d e

m e ssa g e

Page 43: Programmation orientée objet

Les langage de programmations orientés objets On a présenté les concepts de base de POO. Certains langages de programmation

permettent de mettre en œuvre ces concepts quand on écrit un programme.

Les syntaxes de ces langages peuvent être différentes.

Le POO est un paradigme et n’est pas un langage.