Date de première publication : 2024/09/23
- les classes abstraites
- les interfaces
Pour ce quatrième TP, vous allez découvrir ...
Mise en place du code
Nous allons nous appuyer sur les exemples vus en cours et que vous avez commencé à écrire.
Reprenez les classes du TP2 à savoir les classes Voiture
et Camion
On considère que l'arborescence est la suivante :
.
├── Application.java
└── vehicule
├── Camion.java
└── Voiture.java
└── ...
Avec une structure qui ressemblait à celle-ci :
Application |
+ main() |
Voiture |
- immatriculation : chaine - enMarche : booléen - nbPlaces : entier |
+ constructeur(immatriculation) + getImmatriculation() + demarrer() + arreter() |
Camion |
- immatriculation : chaine - enMarche : booléen - remorque : Remorque |
+ constructeur(immatriculation) + getImmatriculation() + demarrer() + arreter() |
Remorque |
- immatriculation : chaine - capacite : reel - chargement : chaine |
+ constructeur(immatriculation, capacite) + getImmatriculation() + charger(Chaine) + decharger() |
NdL : la remorque est bien un véhicule, c'est un véhicule sans moteur !
Les classes abstraites
- Créer et coder une classe
Vehicule
dans le packagevehicule
, classe mère de base des classes ci-dessus. L'information de base doit évidemment contenir les informations d'immatriculation. - Modifier en conséquence les classes
Voiture
etCamion
- Ajouter la classe
Remorque
(dans le package) - Redéfinir la méthode
toString()
pour savoir quel type de véhicule est manipulé et l'immatriculation - Tester les instanciations possibles et les appels de méthodes, soit dans une méthode
main()
, soit en utilisant les tests unitaires.
Vehicule v1 = new Vehicule("ISI063_A");
System.out.println(v1.getImmatriculation());
System.out.println(v1.toString());
Vehicule v2 = new Voiture("ISI063_B");
System.out.println(v2.getImmatriculation());
System.out.println(v2.toString());
- Rendre la classe abstraite. Vérifier ce qu'il est possible de faire ou pas.
L'utilisation des interfaces
<<interface>> Motorisé |
+ demarrer() + arreter() |
- Créer et coder une interface
Motorise
. Cette interface est implémentée par les véhicules concernés. - Implémenter cette interface avec les classes concernées
Vehicule v = new Voiture("ISI");
v.demarrer(); // que se passe-t-il ?
((Voiture)v).demarrer();
((Motorise)v).stopper();
Vehicule r = new remorque();
((Motorise)r).demarrer();
- 1
- 2
- 3
- 4
- 5
- 6
- 7