Atelier 1.2 exercice B: polymorphisme #
Objectifs #
-
Je crée la classe
MonAtelier1_2_B
qui hérite de la classeAtelier1_2_B
-
Je crée la classe
MonAccepteur
qui implante l’interfaceAccepteur
- la méthode
accepterSiDeuxRoues(Vehicule vehicule)
doit:- retourner vrai si le
vehicule
a deux roues - retourner faux sinon
- retourner vrai si le
- la méthode
accepterSiEconomique(Vehicule vehicule)
doit:- retourner vrai si la consommation du
vehicule
est6.0
ou moins - retourner faux sinon
- retourner vrai si la consommation du
- la méthode
accepterSiMoto(Vehicule vehicule)
doit:- retourner vrai si le
vehicule
est uneMoto
- retourner faux sinon
- retourner vrai si le
- la méthode
-
Je crée la classe
MonFormateur
qui implante l’interfaceFormateur
- la méthode
formater(Vehicule vehicule)
doit retourner:"Un/e VEHICULE est un véhicule à ROUES roues. Sa comsomation d'essence est CONSO litres par kilomètre."
- où:
Un
ouUne
selon le type devehicule
VEHICULE
est remplacé par le type devehicule
ROUES
est remplacé par le nombre de roues duvehicule
CONSO
est remplacé par la consommation duvehicule
- la méthode
-
J’implante les méthodes
fournirAccepteur
etfournirFormateur
-
J’ajoute une méthode
main
à la classeMonAtelier1_2_B
:public static void main(String[] args) { new MonAtelier1_2_B().valider(); }
-
J’exécute mon projet et je valide mes classes et mes méthodes
-
J’ajoute les fichiers du projet dans Git
-
Je fais un
commit
et unpush
Réalisation #
Étape 01: créer la classe MonAtelier1_2_B
#
- Je crée une nouvelle classe nommée
MonAtelier1_2_B
- Clique-droit sur le projet => New => Class
- Name:
MonAtelier1_2_B
- Name:
- Clique-droit sur le projet => New => Class
Étape 02: hériter de Atelier1_2_B #
-
J’ouvre
MonAtelier1_2_B
et j’ajouteextends Atelier1_2_B
-
J’utilise Ctrl+.Eclipse: Ctrl+1 pour ajouter le
import
deAtelier1_2_B
-
J’utilise Ctrl+.Eclipse: Ctrl+1 pour générer les méthodes manquantes
- option
add unimplemented methods
- option
Étape 03: créer la classe MonAccepteur
#
-
Je crée une nouvelle classe nommée
MonAccepteur
- Clique-droit sur le projet => New => Class
- Name:
MonAccepteur
- Name:
- Clique-droit sur le projet => New => Class
-
J’ouvre
MonAccepteur
et j’ajouteimplements Accepteur
-
J’utilise Ctrl+.Eclipse: Ctrl+1 pour ajouter le
import
deAccepteur
-
J’utilise Ctrl+.Eclipse: Ctrl+1 pour générer les méthodes manquantes
- option
add unimplemented methods
- option
-
Je remplis la méthode
accepterSiDeuxRoues
@Override public boolean accepterSiDeuxRoues(Vehicule vehicule) { return vehicule.nombreDeRoues() == 2; }
-
Je remplis la méthode
accepterSiEconomique
@Override public boolean accepterSiEconomique(Vehicule vehicule) { return vehicule.consommationLitresParKilometre() <= 6.0; }
-
Je remplis la méthode
accepterSiMoto
@Override public boolean accepterSiMoto(Vehicule vehicule) { return vehicule instanceof Moto; }
Étape 04: créer la classe MonFormateur
#
-
Je crée une nouvelle classe nommée
MonFormateur
- Clique-droit sur le projet => New => Class
- Name:
MonFormateur
- Name:
- Clique-droit sur le projet => New => Class
-
J’ouvre
MonFormateur
et j’ajouteimplements Formateur
-
J’utilise Ctrl+.Eclipse: Ctrl+1 pour ajouter le
import
deFormateur
-
J’utilise Ctrl+.Eclipse: Ctrl+1 pour générer les méthodes manquantes
- option
add unimplemented methods
- option
-
Je remplis la méthode
formater
comme suit:@Override public String formater(Vehicule vehicule) { StringBuilder builder = new StringBuilder(); if(vehicule instanceof Auto) { builder.append("Une auto"); }else if(vehicule instanceof Camion) { builder.append("Un camion"); }else if(vehicule instanceof Fourgonnette) { builder.append("Une fourgonnette"); }else if(vehicule instanceof Moto) { builder.append("Une moto"); }else if(vehicule instanceof Mobilette) { builder.append("Une mobilette"); } builder.append(" est un véhicule à "); builder.append(vehicule.nombreDeRoues()); builder.append(" roues. Sa consommation d'essence est "); builder.append(vehicule.consommationLitresParKilometre()); builder.append(" litres par kilomètre."); return builder.toString(); }
Étape 05: remplir les méthdes de MonAtelier1_2_B
#
-
Je peux maintenant remplir
fournirAccepteur
comme suit:@Override public Accepteur fournirAccepteur() { return new MonAccepteur(); }
-
Et
fournirFormateur
comme suit:@Override public Formateur fournirFormateur() { return new MonFormateur(); }
Étape 06: ajouter la méthode main
#
-
J’ouvre
MonAtelier1_2_B
et j’ajoute la méthodemain
public static void main(String[] args) { new MonAtelier1_2_B().valider(); }
Étape 07: exécuter pour valider #
-
J’exécute mon programme
-
Je vérifie que la validation est réussie: