Skip to content

Laboratoire 3


1. Objectifs

  • Acquisition des éléments distinctifs du langage de programmation Java : tableaux, chaînes de caractères, énumérations, référence null et méthode toString.
  • Utilisation de membres de classes statiques (pas besoin de new.
  • Utilisation des classes et des objets.

2. Manipulations

Créer un nouveau projet IntelliJ IDEA.

Codifier votre solution dans le paquetage :

org.calma.poo.laboratoire3

3. Réalisation

a) Représentation d’un étudiant

  • Codifiez la classe Etudiant avec les propriétés suivantes : nom, prénom, dateNaissance et sexe.
  • Une instance de la classe doit être complète, ajoutez par conséquent les accesseurs nécessaires.
  • Le constructeur doit respecter l’ordre des paramètres suivant : nom, prénom, dateNaissance et sexe.
  • Utilisez une énumération déclarée et définie dans la classe Etudiant pour représenter le sexe d’un étudiant (Homme, Femme).
  • Ajouter une méthode getAge() qui retourne l’âge de l’étudiant en années.
  • Ajouter une méthode getCodePermanent() qui retourne le code permanent selon la nomenclature :
    👉 Code permanent UQAM

Composition du code permanent :

  • Les 3 premières lettres du nom.
  • La première lettre du prénom.
  • Le jour de naissance (+62 si année ≥ 2000).
  • Le mois de naissance (+50 pour sexe féminin).
  • L’année de naissance.
  • Deux derniers chiffres aléatoires.

Exigence supplémentaire :

  • Complétez la classe avec une méthode toString() qui retourne une chaîne formatée comme dans les exemples fournis.

b) Dé-sérialisation d’un étudiant

  • Ajoutez une méthode statique parse dans la classe Application.
  • Cette méthode reçoit en paramètre une chaîne qui représente un étudiant et retourne une instance de Etudiant.
  • Exemple de chaîne :
    PRENOM:Jean;NAISSANCE:1946:9:25;NOM:Tremblay;SEXE:Homme
    
  • La méthode doit :
    • Reconnaître les propriétés (ordre aléatoire).
    • Séparer les propriétés par ; (point-virgule).
    • Séparer chaque propriété en clé/valeur avec : (deux-points).
    • Utiliser split() de la classe String.

c) Représentation des constantes

  • Créez la classe Constantes avec les constantes suivantes :
Nom de la constante Valeur de la constante
NOM NOM
PRENOM PRENOM
DATE_NAISSANCE NAISSANCE
SEXE SEXE
  • La classe Constantes :
    • Ne doit contenir que des membres statiques.
    • Ne doit pas être instanciable (constructeur privé).

Contraintes

  • Toutes les classes sont dans le paquetage laboratoire3.
  • Le point d’entrée est dans la classe Application.
  • La classe Constantes ne doit pas pouvoir être instanciée.