Atelier 1.2 exercice B: polymorphisme #
Objectifs #
-
Je crée la classe
MonAtelier1_2_Bqui hérite de la classeAtelier1_2_B -
Je crée la classe
MonAccepteurqui implante l’interfaceAccepteur- la méthode
accepterSiDeuxRoues(Vehicule vehicule)doit:- retourner vrai si le
vehiculea deux roues - retourner faux sinon
- retourner vrai si le
- la méthode
accepterSiEconomique(Vehicule vehicule)doit:- retourner vrai si la consommation du
vehiculeest6.0ou moins - retourner faux sinon
- retourner vrai si la consommation du
- la méthode
accepterSiMoto(Vehicule vehicule)doit:- retourner vrai si le
vehiculeest uneMoto - retourner faux sinon
- retourner vrai si le
- la méthode
-
Je crée la classe
MonFormateurqui 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ù:
UnouUneselon le type devehiculeVEHICULEest remplacé par le type devehiculeROUESest remplacé par le nombre de roues duvehiculeCONSOest remplacé par la consommation duvehicule
- la méthode
-
J’implante les méthodes
fournirAccepteuretfournirFormateur -
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
commitet 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_Bet j’ajouteextends Atelier1_2_B -
J’utilise Ctrl+.Eclipse: Ctrl+1 pour ajouter le
importdeAtelier1_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
MonAccepteuret j’ajouteimplements Accepteur -
J’utilise Ctrl+.Eclipse: Ctrl+1 pour ajouter le
importdeAccepteur -
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
MonFormateuret j’ajouteimplements Formateur -
J’utilise Ctrl+.Eclipse: Ctrl+1 pour ajouter le
importdeFormateur -
J’utilise Ctrl+.Eclipse: Ctrl+1 pour générer les méthodes manquantes
- option
add unimplemented methods
- option
-
Je remplis la méthode
formatercomme 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
fournirAccepteurcomme suit:@Override public Accepteur fournirAccepteur() { return new MonAccepteur(); } -
Et
fournirFormateurcomme suit:@Override public Formateur fournirFormateur() { return new MonFormateur(); }
Étape 06: ajouter la méthode main
#
-
J’ouvre
MonAtelier1_2_Bet j’ajoute la méthodemainpublic 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: