Poo 1
Poo 1
Poo 1
Objectifs :
●Acquisition des notions et du vocabulaire de la
POO
●Séparer l'apprentissage des langages de celui
des notions
DONNÉES
Flot d'instructions
séquentiel
Procédures et
fonctions
services
offerts par les associés)
objets
services
crée et supprime
des objets
Objet2
Ut
e
ilis
Utilis
e
services
La complexité :
➔ plus elle grandit, plus le système est fragile
Exemple en Ruby
maVoiture=Twingo.new('rouge')
saVoiture=Twingo.new('bleue')
Voilier
float taille
Date dateCreation
float record
void vole()
float getRecord()
setRecord(float)
Spécialisation
AvionHelice AvionReactio
Planneur String nbMoteurs String nbMoteurs
Integer getPuissance() Integer getPuissance()
void vole() Bolean postCombus()
26.09.16 Sylvain Cherrier void vole()
Un programme utilisateur
de nos classes
Un autre objet (Compétition par exemple) pourra
utiliser nos classes. Quelques exemples.
ObjetVolant s1,s2; //déclaration
Planneur fb1;
s1=new ObjetVolant(); s2=new Planneur(); //oui un planneur est un
objet volant
fb1=new AvionReaction(); //NON !!! ça n'est pas cohérent !!
fb1=new Planneur(); //oui
s1.vole();s2.vole(); //oui
float record=max(s1.getRecord(),s2.getRecord());
//oui, si max(float,float) existe dans le langage, et renvoie bien un
float. Ce code est il bien objet ??
float taille
Date dateCreation
float record
void vole()
float getRecord()
setRecord(float)
Spécialisation
AvionHelice AvionReactio
Planneur String nbMoteurs String nbMoteurs
Integer getPuissance() Integer getPuissance()
void vole() Bolean postCombus()
26.09.16 Sylvain Cherrier void vole()
Comportement général et
spécialisation :
Le polymorphisme
Un comportement (une méthode) d'une super-Classe peut être
modifié (redéfini) dans une sous-Classe. Cette sous-Classe se
comporte d'une façon différente de la super-Classe pour cette
même action. Cette redéfinition, qui permet de spécialiser le
comportement hérité d'un ancêtre, correspond au
polymorphisme. C'est la façon de sauter qui est redéfinie ici.
Livre
● Film
●
Musique
●
● film(Livre) ● getAuthor()
Héritage ? Surcharge ? Redéfinition ?