M12 Poo Les Objets

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View M12 Poo Les Objets as PDF for free.

More details

  • Words: 1,172
  • Pages: 24
Le Langage Les objets Java

Pourquoi l’objet ???

n

Les approches traditionnelles ( programmation structurée) ne suffisent plus et ont un certain nombre d’inconvénients :

Fonctions

Données

Application

n

La séparation entre fonctions et données implique une structure peu évolutive: u

n

coût énorme de la maintenance.

Il faut trouver d’autres solutions -> l’approche objet

La programmation par "objet"

n

Faire correspondre à un objet réel une représentation la plus proche possible.

n

Exemple : une voiture

u

est unique (celle qui est devant moi)

u

a des caractéristiques (marque, prix, couleur, etc...)

u

est dans un certain état (arrêt)

u

a un certain comportement (le fait de tourner la clef permet de démarrer la voiture).

Concepts de base

n

La programmation par objets est fondé sur un ensemble de concepts : u

Objet

u

Message

u

Classe

u

Encapsulation

u

Héritage

u

Polymorphisme

Les objets

n

Un objet est une entité qui rend des services.

n

Je veux aller suivre un cours au CNAM de Nantes le samedi matin à 8h et j’habite à La Chapelle sur erdre.

n

Comment faire ????

n

1.

me lever à 5h et y aller à pied

-> pas la meilleure solution

2.

solliciter un objet permettant de me déplacer -> oui bien sur

Je vais donc choisir l’objet le plus approprié et l’utiliser : 1.

le vélo

-> pas très pratique sauf pour la balade du dimanche matin

2.

le skate board

-> c’est celui de mon fils, moi je ne sais pas en faire

3.

la voiture

-> ça me paraît pas mal

L’identité

n

Un objet voiture va donc me rendre un service de déplacement.

n

Tout objet possède une identité qui lui est propre et qui le caractérise.

n

Pour aller au cnam j’utilise ma voiture. Elle a une plaque d’immatriculation avec un numéro unique.

maVoiture AB325044

n

L’identité permet de distinguer tout objet de façon non ambiguë,

Les états

n

Ma voiture possède un ensemble de caractéristiques. Ce sont ses attributs : u

n

marque,couleur,prix,compteur, réservoir

L’état regroupe les valeurs instantanées de tous les attributs d’un objet :

maVoiture Ferrari rouge 70000€ 150000klm n

L’état évolue au cours du temps.

50l

Les comportements

n

Je n’ai pas à connaître le fonctionnement interne de la voiture pour l’utiliser.

n

En effet un objet possède aussi un mode d’emploi qui spécifie comment utiliser l’ensemble de ses comportements : u

démarrer

u

rouler

u

arrêter

n

Le comportement se représente sous la forme de méthodes

n

L’état d’un objet est la conséquence de ses comportements passés: u

réservoir = 50L

->

j’ai fait le plein

État et Comportement

n

L’état et le comportement sont liés : u

Le comportement dépend de l’état

u

L’état peut être modifié par le comportement

maVoiture 50litres maVoiture -> rouler (300)

maVoiture 20litres n

Remarque : la valeur 300 de rouler indique le nombre de kilomètres.

Objet structuré

n

Un objet peut être composé d’autre objets.

n

Une voiture possède des pneus qui ont leurs propres caractéristiques et leurs propres comportements. maVoiture Ferrari rouge Pneus Pneus Pneus Pneus Bridgestone Bridgestone Bridgestone Bridgestone 300 300 300 300

n

De la même façon une voiture possède un moteur, une carrosserie, …

Objet structuré

n

Que se passe-t’il si je veux changer de pneus ??? maVoiture Ferrari

maVoiture Ferrari

rouge

rouge

Pneus Pneus Pneus Pneus Bridgestone Bridgestone Bridgestone Bridgestone 300 300 300 300

Pneus Pneus Pneus Pneus Bridgestone Bridgestone Bridgestone Michelin 300 300 300 200

n

Aucun problème -> il existe une norme que les constructeurs respectent -> très intéressant.

n

Je peux donc créer des objets par assemblage d’autre objets fournît par différents éditeurs (si c’est normalisé bien sur) -> terminé les solutions propriétaires ( ouf !!!).

Communication entre objet

n

Les objets ne vivent pas en ermites. Ils interagissent les uns avec les autres.

demarrer

n

Le conducteur envoie un message à la voiture pour démarrer celle-ci. La voiture sollicite le moteur pour la mis en route de la voiture.

Message

n

Les objets communiquent en échangeant des messages.

n

Le message est l’unité de communication entre objets. Il correspond à l’invocation d’un comportement à un instant donné.

Encapsulation

n

L'intérieur de la voiture m'est complètement caché: u

je n’ai pas à connaître le fonctionnement interne de la voiture pour l’utiliser,

u

ses caractéristiques et ses composants internes sont protégés,

u

ils ne sont manipulables que par les «comportements» décrits par le mode d'emploi, afin de garantir son bon fonctionnement,

u

même le code des «comportements» est caché car je ne connais que le nom général de «la méthode» et le résultat devant être obtenu.

Tant pis pour les escrocs

n

Je désire changer de véhicule et donc vendre ma ferrari.

n

Pour en tirer un bon prix je vais diminuer le nombre de kilomètres du compteur (personne n’est parfait …. ).

maVoiture

maVoiture ->compteur ( 150 000)

220000klm

maVoiture 150000klm

n

Erreur le compteur n’est pas accessible, il est encapsulé et la voiture ne propose pas de comportement permettant de le modifier.

n

Encapsulation -> protection des données -> fiabilité

Application objet

n

Une application objet est constituée d’un ensemble d’objets qui vont collaborer.

n

Les objets travaillent en synergie afin de réaliser les fonctions de l’application.

n

Le comportement global d’une application repose donc sur la communication entre les objets qui la composent.

n

Les objets ont un cycle de vie : u

création

u

exploiter en fournissant des services

u

suppression

Illustration : Un programme Objet

JchaiPasQuoiFaire

Creer ChateauDeSable Enfant Garnir

Run Creer Bronzer

Femme

Casser FaisUnChateau

Un programme Objet

JchaiPasQuoiFaire Enfant Run

Bronzer

Femme

ChateauDeSable Delete

PrendreBain

Un programme Objet

JchaiPasQuoiFaire Enfant

Creer

Run

Bronzer

Femme

PrendreBain

Crier

AllerDans

Mer

Un programme Objet

Enfant Run

Bronzer

Delete

Femme Crier

Mer

Un programme Objet

Attention chaque objet est responsable des objets qu’il a crée ….

Run

Bronzer

Femme

Fuite Mémoire Mer

Cycle de vie des objets

n

n

Tout objet peut donc créer d’autres objets: u

Une femme peut créer un enfant (c’est son rôle non ??? )

u

Un enfant peut créer un château,

Tout objet peut dialoguer avec d’autres objets par envoi de message, la mère demande à l’enfant d’aller faire un château: enfant<-FaisUnChateau()

n

Un objet peut communiquer avec lui-même : femme<-Bronzer()

Suppression d’objets

n

Tout objet a la responsabilité des objets qu’il a engendrés et doit donc gérer la suppression de ceux-ci: enfant<-DetruireChateau()

n

Dans le cas contraire on peut avoir des fuites mémoires

n

Certains langages ( Java ) fournissent un garbage collector ( ramasse-miettes) qui gère la libération mémoire -> super !!! on a une femme de ménage à disposition.

Les types d’objets

n

Un objet représente aussi bien une entité matérielle (Voiture, Personne,...) qu'un concept abstrait (Transaction, Relation, ...)

n

Tout doit être Representé en tant qu’objet, les objets du monde réel mais aussi les objets informatiques : u

visibles par l’utilisateur : ( IHM )

u

Les extensions du langage – intervalles – tableaux – les chaînes de caractères

u

Les conteneurs : – tableaux, listes, piles, ....

Related Documents

M12 Poo Les Objets
November 2019 11
Les Objets
July 2020 1
M12
May 2020 5
Poo
June 2020 12
Poo
June 2020 9