Définition et utilisation d’une classe Etudiant :
classes, instances, méthodes simples, instructions conditionnelles
1 Définition de la structure de la classe
Vous allez définir en parallèle :
— Une classe Etudiant (sans méthode main) qui décrira ce qu’est un objet étudiant et quelles
opérations peuvent être appliquées à un étudiant.
— Une classe-programme TestEtudiant (avec une méthode main) qui permettra de créer des
objets étudiants et d’appeler les différentes opérations.
Par ailleurs, à chaque fois que vous codez une fonction ou une méthode, veuillez à proposer un code
permettant de réellement tester votre contribution.
1.1 Données de la classe Etudiant
Dans cette première partie, nous définissons la partie structurelle de la classe (i.e. ses attributs). La
classe sera définie dans un fichier [Link] dans un paquetage fr.um3.<votre_nom>.etudiant.
Un étudiant devra être décrit par (vous choisirez correctement les types des attributs) :
— un nom,
— un prénom,
— trois notes : une note de programmation, une note de mathématiques et une note de stage,
— un âge,
— un code d’inscription (codé par un entier) qui vaut 1 si c’est la première inscription de l’étudiant,
et 2 s’il s’agit d’une réinscription,
— un code de pays (codé par un entier) qui vaut 1 pour un étudiant français, 2 pour un étranger
non francophone et 3 pour un étranger francophone.
1.2 Première utilisation dans une classe-programme TestEtudiant
Définissez, dans le même paquetage, mais dans un deuxième fichier, nommé [Link], une
classe-programme (i.e. possédant une méthode main). Dans la méthode main, vous aurez deux instruc-
tions : vous définissez un objet étudiant, puis vous affichez un message. Exécutez le programme : si
tout se passe sans erreur, cela signifie votre classe-programme connaı̂t bien la classe Etudiant.
2 Définition des constructeurs
2.1 Constructeurs de la classe Etudiant
Écrire :
— un constructeur qui initialise tous les attributs,
1
Définition et utilisation d’une classe Etudiant :
L2 MIASHS classes, instances, méthodes simples, instructions conditionnelles
— un constructeur qui initialise tous les attributs sauf les notes,
— un constructeur qui initialise uniquement le nom, le prenom et l’âge.
Testez votre classe dans la méthode main de la classe-programme TestEtudiant. Essayer notamment
de créer un étudiant avec la ligne d’instruction suivante :
Etudiant e = new Etudiant();
Que se passe-t-il ? Pourquoi ?
2.2 Création d’étudiants dans une classe-programme TestEtudiant
Vous pouvez maintenant compléter la classe-programme. Écrivez dans la méthode main les instructions
qui traduisent ce qui suit :
— Créez Jean Vauthier, étudiant québecois francophone, âgé de 24 ans, qui s’inscrit pour la pre-
mière fois, sans notes connues,
— Créez Zhentao Lih, étudiant chinois francophone, âgé de 23 ans, qui se réinscrit, sans notes
connues,
— Créez Astrid Virtanen, étudiante finlandaise non francophone, âgée de 26 ans, qui s’inscrit pour
la première fois, sans notes connues,
— Créez Paolo Dos Santos, étudiant brésilien non francophone, âgé de 27 ans, qui s’inscrit pour
la première fois, sans notes connues,
— Créez Zoé Bisson, étudiante française, âgée de 26 ans, qui se réinscrit, avec les notes 12 (pro-
grammation), 5 (maths), 8 (stage).
— Donnez à Astrid Virtanen les notes 16 (programmation), 15 (maths), 14 (stage).
— Modifiez la note de programmation de Zoé Bisson qui devient 15.
3 Définition des méthodes
3.1 Amélioration des constructeurs
Dans Etudiant. Modifiez les constructeurs afin de n’accepter
— que des réels entre 0 et 20 pour les notes,
— qu’un entier égal à 1 ou 2 pour le code d’inscription,
— qu’un entier égal à 1, 2 ou 3 pour le code pays.
Un message d’erreur sera affiché si la valeur de l’attribut n’appartient pas au domaine de valeurs.
Pensez à l’encapsulation.
Dans TestEtudiant. Testez la possibilité de créer un étudiant avec une note de mathématiques de 22.
3.2 Méthode moyenne
Ajoutez à la classe Etudiant une méthode moyenne qui retourne la moyenne d’un étudiant. Dans
TestEtudiant, donnez des notes à tous vos étudiants et appelez moyenne pour vérifier son bon fonc-
tionnement.
3.3 Méthode mention
Ajoutez à la classe Etudiant une méthode mention qui retourne une chaı̂ne de caractères correspon-
dant à la mention d’un étudiant. Dans TestEtudiant, appelez mention sur vos étudiants pour vérifier
son bon fonctionnement.
TP E32MI5 2
Définition et utilisation d’une classe Etudiant :
L2 MIASHS classes, instances, méthodes simples, instructions conditionnelles
3.4 Méthode ligneResultats
Ajoutez à la classe Etudiant une méthode ligneResultats qui retourne une chaı̂ne de caractères d’une
ligne précisant le prenom, le nom, la moyenne et la mention, et, seulement s’il est ajourné, les modules
obtenus (c’est-à-dire ceux où il a obtenu la moyenne). Dans TestEtudiant, appelez ligneResultats
sur vos étudiants pour vérifier son bon fonctionnement.
3.5 Méthode saisie
Ajoutez à la classe Etudiant une méthode saisie qui prend un Scanner en paramètre et récupère au
clavier toutes les informations concernant un étudiant. Dans TestEtudiant, appelez saisie sur vos
étudiants pour vérifier son bon fonctionnement.
4 Introduction aux énumérations
Nous voudrions à présent définir un attribut décrivant la situation financière de l’étudiant. Celui-ci
peut être principalement boursier, salarié ou avoir un autre financement. On peut utiliser un codage
par un entier pour ces trois situations comme nous l’avons fait pour les codes pays et codes inscription.
Une autre solution consiste à définir un type énumération qui regroupe un ensemble de constantes.
Pour le créer avec Eclipse, ajoutez au package une enum par : File → new → Enum).
public enum SituationFinanciere {
boursier, salarie, autre;
}
L’accès à la constante boursier sera réalisé grâce à l’expression [Link].
Vous pouvez maintenant ajouter dans votre classe un attribut décrivant la situation financière d’un
étudiant. Quelles modifications doit comporter votre code précédent pour le gérer ? Mettez-les en
œuvre et testez en créant un étudiant boursier. Cherchez notamment à saisir au clavier et à afficher
la situation financière.
Vous êtes en mesure d’améliorer la définition des attributs codeIns et codePays en créant des énu-
mérations.
5 Python
Reprenez tout le TP en Python.
TP E32MI5 3