Vous êtes sur la page 1sur 2

POO Mohamed Aymen Charrada L2 S1

TP n°7 : Héritage et polymorphisme en JAVA

Déroulement des ateliers :


• Les étudiants doivent travailler en monôme ou max en binôme.
• Chaque étudiant aura une note pour chaque séance de TP. Cette note sera calculée en
fonction des critères suivants : comportement dans la salle, retard, participation et
compte rendu. Une absence non justifiée signifie automatiquement un zéro.
• A partir de ce TP, un compte rendu numérique (en format PDF) doit être envoyé
à la fin de la séance à l’adresse mail suivante (n’oubliez pas de mentionner vos
noms) :
charradamohamedaymen@gmail.com
Dans ce TP, vous allez aborder la mise en œuvre de l’héritage avec le polymorphisme
dans les classes JAVA. Toutes les classes devront être dans un paquetage et tous les fichiers
de vos exercices devront respecter la structure préconisée dans le cours.

Lancez « eclipse » et créez un nouveau projet nommé « TP7 ». Dans ce projet, créez un
package nommé « par1 ». Ce package contiendra toutes les classes à développer dans cette
partie.
Dans un pays, on trouve des habitants qui peuvent être des citoyens ou des résidents :
• Un habitant est caractérisé par son nom, son prénom, sa date de naissance (de type
chaine de la forme « dd/mm/yyyy ») et son adresse.
• Un citoyen est un habitant qui admet de plus un CIN (entier long).
• Un résident est un habitant qui possède une carte de séjour.
• Une carte de séjour admet un numéro (entier long), une date de début (de type chaine
de la forme « dd/mm/yyyy ») et une durée de validité, exprimée en années (entier)
1. Créez les classes « Habitant », « Citoyen », « CarteSejour » et « Resident », contenant
chacune un constructeur avec initialisation variable et une méthode « affiche » qui
permet d’afficher l’état (les valeurs des attributs) de chaque objet.
2. Dans la classe « Habitant », ajoutez la méthode publique « calculAge » qui permet de
calculer et retourner l’âge d’un habitant. Pour vous aider, ci-joint une liste d’indication :
• Pour convertir une chaine de caractères en un objet de type « Date », il est conseillé
d’utiliser le code suivant :

String ds = "01/10/2023" ;
SimpleDateFormat ft = new SimpleDateFormat ("dd/MM/yyyy");
Date d = ft.parse(ds) ;

N’oubliez pas d’ajouter les importations suivantes :

1
POO Mohamed Aymen Charrada L2 S1

import java.text.SimpleDateFormat;
import java.util.Date;
• Pensez à utiliser des objets de type « Calendar » (et n’oubliez pas d’ajouter
l’importation nécessaire).
• Vous aurez besoin d’ajouter « throws ParseException » dans l’entête de la méthode
« calculAge » après la zone de définition des arguments.
• Tenez aussi en compte que si on est le 10/11/2023 et que l’habitant est né le
02/05/2000, son âge est 23 alors que s’il est né le 15/12/2000, il a encore 22 ans.
3. Créez la classe « Pays » sachant qu’un pays est caractérisé par un nom, la liste de ses
habitants (de type tableau statique) et le nombre de la population. Cette classe doit
contenir pour le moment un constructeur avec initialisation variable avec un seul
argument qui sert à initialiser le nom. La liste des habitants est initialement vide et le
nombre de la population est initialement égale à 0.
4. Dans la classe « Pays », ajoutez :
• Une méthode publique « affichePopulation » qui permet d’afficher les détails de tous
les habitants du pays,
• La méthode publique « ajoutHabitant » qui permet d’ajouter un habitant à la
population du pays. Notez bien, cette méthode doit assurer un stockage dynamique,
c’est-à-dire qu’on doit toujours pouvoir rajouter de nouveau habitants,
• Les deux méthodes publiques « nbCitoyens » et « nbResidents » qui permettent de
calculer et retourner respectivement le nombre des citoyens et des résidents du pays.
5. Dans la classe « CarteSejour », ajoutez une méthode nommée « verifierValidite » qui
permet de vérifier si la carte est encore valide ou non en fonction de la date de début et de
la durée de sa validité. La méthode doit retourner un booléen.
6. Modifiez la méthode « affiche » de la classe « CarteSejour » afin qu’elle affiche les
détails de la carte si elle est encore valide. Sinon, elle affichera le message suivant :
« Carte de séjour invalide ».
7. Ajoutez, dans la classe « Habitant », les accesseurs des attributs « nom » et « prenom ».
De même, ajoutez l’accesseur de l’attribut « cin » dans la classe « Citoyen ».
8. Dans la classe « Pays », ajoutez la méthode « afficheElecteurs », qui permet d’afficher
les « cin », les noms et les prénoms des électeurs dans le pays sachant qu’un électeur
doit être un citoyen d’âge supérieur ou égale à 20 ans.
9. Ecrire la classe principale « Test ». Dans cette classe :
• Créez un pays,
• Ajoutez des habitants,
• Affichez les détails de la population du pays,
• Affichez le nombre des citoyens et des résidents,
• Affichez les détails des électeurs du pays.

Vous aimerez peut-être aussi