100% ont trouvé ce document utile (1 vote)
324 vues4 pages

Problèmes de Java : Héritage et Étudiants

Le document présente un TP en Java sur l'héritage et le polymorphisme, impliquant la création de classes pour représenter des personnes, des étudiants et des enseignants. Il détaille les étapes de conception des classes, y compris les constructeurs, les méthodes d'affichage, et les opérations spécifiques aux étudiants et enseignants. Enfin, il aborde la surcharge et la redéfinition de méthodes pour enrichir le comportement des classes créées.

Transféré par

yousra cherguif
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
324 vues4 pages

Problèmes de Java : Héritage et Étudiants

Le document présente un TP en Java sur l'héritage et le polymorphisme, impliquant la création de classes pour représenter des personnes, des étudiants et des enseignants. Il détaille les étapes de conception des classes, y compris les constructeurs, les méthodes d'affichage, et les opérations spécifiques aux étudiants et enseignants. Enfin, il aborde la surcharge et la redéfinition de méthodes pour enrichir le comportement des classes créées.

Transféré par

yousra cherguif
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ENSAF- 2ISD Année : 2021/2022

TP3 Java: Héritage et polymorphisme

Problème : Classes Personnes, Enseignants et Etudiants

Première partie: Classe Personne

Dans cette partie, on va créer deux classes, l’une représentant une personne, nommée Personne et
l’autre pour le programme de test (main), nommée GestionPersonne
1. Créer une classe, nommée Personne contenant:
 Un champ « nom » de type String
 Un champ « age » de type int .
 Un constructeur a deux paramètres « Personne (String ag, int no) » permettant
d’initialiser les deux champs de la classe.
 Une méthode « void afficher() » permettant d’afficher le nom et l’âge au format décrit
ci-après. Pour un objet de type Personne dont la variable d’instance nom vaut "Idrissi"
et la variable d’instance age vaut 30, la méthode afficher() affichera à l’écran :
Nom : Idrissi
Age : 30 ans
2. Ajouter des accesseurs (les getters) et les modificateurs (les setters) pour les variables nom
et age.
3. Ajouter un champ à la classe Personne, de type tableau de réels « double[] comptes »
susceptibles de représenter les divers soldes des comptes en banque de la personne.
4. Ajouter un constructeur a 3 paramètres à la classe Personne « Personne (String no, int ag,
double [] T) » en invoquant le constructeur a deux paramètres.
5. Adapter la méthode afficher() (qui doit afficher, outre le nom et l’âge de la personne les
différents éléments du tableau comptes.
6. Ajouter à la classe Personne, la méthode « void diviserParDeux() », permettant de
modifier le tableau comptes en divisant chaque élément par deux.
7. Ecrire un programme de test, nommée GestionPersonne, permettant de :
a. Créer deux objets de type Personne avec des comptes.
b. Appeler la méthode diviserParDeux() pour les objets crées.
c. Afficher les informations des objets crées.
8. Supprimer le champ de type tableau de réels « double [] comptes » et le constructeur a 3
paramètres de la de classe Personne.

Page 1
ENSAF- 2ISD Année : 2021/2022

9. Adapter la méthode afficher() pour afficher que le nom et l’âge de la personne.


10. Redéfinir la méthode toString() dans la classe Personne pour afficher le nom et l’âge de la
personne.
11. Créer deux objets, dans votre programme de test, de type Personne et afficher les
informations de ces objets en appelant la méthode toString ().

Deuxième partie : Classes Etudiants et Enseignants (Héritage)

Dans cette partie, on va créer deux classes, l’une représentant un étudiant, nommée Etudiant et
l’autre représentant l’enseignant, nommée Enseignant.
1- Classe Etudiant
a. Créer une classe Etudiant héritant de Personne et ayant 4 champs :
 Un champ « nombreCours » représente le nombre de cours suivis par l’étudiant.
 Un tableau de String « String [] cours » représentant les modules.
 Un tableau de double « double [] notes » représentant les notes obtenus à ces
modules. Avec la note du ième module étant à la position i dans le tableau des notes.
 Un champ « MAX_COURS » fixé à 10, est une constante qui correspond au nombre
maximum de modules suivis.
b. Ajouter un constructeur à la classe Etudiant, qui prend en paramètre le nom et l’âge de
l’étudiant. Il initialise les deux tableaux (cours et notes) et la variable nombreCours à 0.
c. Définir la méthode « void ajouteCoursNote (String, double) », qui permet d’ajouter le
nom d’un module et la note obtenue dans ce module.
d. Définir la méthode « void afficheNotes() », qui affiche tous les modules suivis par
l’étudiant et les notes correspondantes.
e. Ajouter la méthode « double noteMoyenne() », qui retourne la note moyenne de
l’étudiant.
f. Redéfinir la méthode « toString() » pour afficher la description d’un objet de type
Etudiant sous la forme : "Etudiant" suivi de son nom et de son âge.

2- Classe Enseignant
a. Créer, de même, une classe Enseignant héritant de Personne et ayant 3 champs :
 Un champ « nombreCours » représente le nombre de cours assurés par l’enseignant.
 Un tableau de String « String [] cours » représentant les différents modules assurés
par cet enseignant.

Page 2
ENSAF- 2ISD Année : 2021/2022

 Un champ « MAX_COURS » fixé à 8, est une constante qui correspond au nombre


maximum de modules que peuvent assurés par l’enseignant.
b. Créer un constructeur appelant le constructeur de la classe mère, puis initialisant ses
champs propres (le tableau des cours et la variable nombreCours).
c. Ajouter la méthode « boolean ajouteCours(String) » permettant d’ajouter un cours à
l’attribut cours si ce cours n’est pas déjà présent dans la liste des modules enseignés. Si le
cours est déjà présent, on retournera la valeur booléen false, true sinon.
d. De même Ajouter la méthode « boolean enleveCours(String) » permettant d’enlever un
cours si l’enseignant ne l’enseigne plus. Comme pour la méthode ajouteCours, on enlèvera
le cours que s’il est présent dans la liste des modules (false ou true) ;
e. Redéfinir la méthode toString() pour afficher une description d’un objet de type
Enseignant sous la forme : "Enseignant" suivi de son nom et son âge entre parenthèses
ainsi que la liste de tous les modules enseignés.
f. Dans votre programme de test :
 Créer une instance d’objet de type Etudiant, de nom égal à "Houssaini" et d’âge égal à
21.
 Ajouter 4 cours et leurs notes en appelant la méthode « ajouteCoursNote (String,
double) » de la classe Etudiant.
 Afficher tous les modules suivis par l’étudiant et les notes correspondantes en appelant
la méthode afficheNotes();
 Appeler la méthode « noteMoyenne() » et afficher la note moyenne de l’étudiant.
 Afficher la description de l’étudiant en appelant la méthode toString().
 Créer un Enseignant, de nom égal à "Sabour" et d’age égal à 38.
 Ajouter 6 cours en appelant la méthode « ajouteCours (String) » de la classe
Enseignant.
 Appeler la méthode toString() pour afficher la description de l’objet crée.
 Enlever 2 cours en appelant la méthode « enleveCours(String) » et afficher à nouveau
la description de l’objet crée.
3- Différentiation par le type.
a. Créer un tableau de 5 éléments de type Personne dans votre programme de test et
l’initialiser avec 2 instances d’objet de type Enseignant et 3 instances de type Etudiant.
b. Effectuer une boucle for sur les éléments du tableau; dans le corps de la boucle, effectuer
un appel à la méthode toString(), puis afficher s’il s’agit d’un Etudiant ou d’un
Enseignant en se servant de l’opérateur instanceof.

Page 3
ENSAF- 2ISD Année : 2021/2022

Troisième partie : Surcharge et redéfinition

1. Surcharge de la méthode afficher().


Dans la classe Personne, créer une méthode afficher(), de signature void afficher(boolean
compact) qui affiche selon l’un des formats suivants. Si compact est égal à false, l’affichage
est le même que celui de signature void afficher() (de la classe Personne). Si compact est
égal à true, l’affichage d’un objet de nom égal à Idrissi et d’age égal à 30 sera de la forme
[La personne est de nom Idrissi et il a 30 ans].
2. Redéfinition de la méthode afficher().
Créer, au sein de la classe Enseignant (resp. au sein de la classe Etudiant) une méthode de
signature void afficher() qui appelle la méthode afficher() de Personne, puis qui affiche la
chaîne "cette personne est Enseignant" (resp." cette personne est Etudiant").
3. Même question que celle dans la deuxième partie (question 3.b), mais en ne conservant,
dans le corps de la boucle for, qu’un appel à la méthode afficher() sur les cinq éléments du
tableau.

Page 4

Vous aimerez peut-être aussi