Vous êtes sur la page 1sur 3

ISET SFAX

AU 2019/2020 SEMESTRE I

DEVOIR SURVEILLÉ

Classes : RSI2, DSI2 et SEM2 Matière : POO Nb pages : 3

Enseignants : Naima H., Imen M., Hounaida M., Mohamad E. et Hédi H.


Documents : Non Autorisés Durée : 1 heure
Barème : (1+2+1) + 16 points

Questions de Cours

1- Soit une méthode statique afficherNb() est déclarée dans une classe A ;
Choisir la(es) instructions juste :
- A a=new A() ;
- a.afficherNb() ;
- A.afficherNb() ;
- afficherNb() ;
2- Quel est le rôle d’un constructeur dans une classe B ? Si aucun constructeur n’est
spécifié dans une classe, est ce que cette instruction est juste :
B b=new B() ;
3- Quel est le rôle d’une machine virtuelle ?

Problème

Dans cet exercice, on vous propose d’écrire une application java qui permet de gérer les e-mails
dans une boite de lettres électronique (MailBox).

Cette version simplifiée de gestion des e-mails est composée de deux classes : Mail et MaiBox
dont la description est donnée ci-dessous.

La classe Mail admet les attributs suivants :

Attribut Description et Type


numMail Entier auto-incrémenté
expéditeur, destinataire Chaîne de caractère
etat Valeur logique (lu :true, non lu :false)
objet, corps Chaîne de caractère
type Entier (1:envoyé ou bien 2 :reçu)
autoIncrement Un enier static initialisé à 1 et incrémenté à chaque
création d’un nouveau Mail.

1
Vous disposez aussi des constantes suivantes dont les valeurs serviront pour les attributs etat et
type :

private final boolean LU=true;


private final boolean NON_LU=false;
private final int ENVOYE=1;
private final int RECU=2;

Les méthodes de la classe Mail sont :

Méthode Description
public Mail (expediteur) Constructeur avec un seul paramètre.
public Mail Constructeur qui initialise les attributs destinataire,
(destinataire,objet,corps) objet et corps. Ce constructeur sera utilisé pour créer
les Mails envoyés (type = envoyé).
Les méthodes getter/setter Des accesseurs / modificateurs pour les attributs type,
destinataire et expéditeur.
public void envoyerMail() Cette méthode fait passer un Mail à l’état envoyé s’il
admet au moins un destinataire.
public void recevoirMail() Cette méthode fait passer un Mail à l’état reçu s’il
admet un expéditeur.
public Mail transfererMail(mail, Cette méthode permet de :
destinataire) - créer une copie du paramètre mail (avec le
constructeur de copie,
- affecter le destinataire en paramètre au mail créé
- envoyer le mail (avec la méthode envoyerMail())
- retourner le Mail transféré.
public void afficherMail() Cette méthode affiche les informations d’un Mail.

Les Mails sont enregistrés dans une structure boite à lettres appelée MailBox. La classe MailBox
admet les attributs suivants :

Attribut Description et Type


Box Un tableau dont les éléments sont de type Mail.
User Une chaîne de caractère qui indique l’adresse mail du
propriétaire de la MailBox.
nbMails Un entier qui représente le nombre de Mails dans le
MailBox
NB_Max Une constante entière qui indique le nombre maximum de
massages que peut contenir la boite de réception (100).

Les méthodes de la classe MailBox sont décrites dans le tableau suivant :

Méthode Description
public MailBox ( user) Constructeur avec un seul paramètre.
public void ajouterMail (mail ) Cette méthode teste :
o si mail est un Mail envoyé, alors elle attribue
user à l’expéditeur,
o si le mail est reçu alors user sera attribué au

2
destinataire.
o Si la MailBox n’est pas encore pleine, elle
cherche la première place vide pour y insérer
mail ;
public void supprimerMail( mail ) Cette méthode supprime le mail en paramètre s’il
existe.
public void afficherMailBox() Cette méthode affiche tous les messages du MailBox.

Travail demandé

1- Donnez une implémentation de la classe Mail.


2- Donnez une implémentation de la classe MailBox.
3- Donner une classe de Test qui permet de :
- Créer une instance btr de MailBox pour l’utilisateur foulen.benFoulen@mailing.tn
- Créer deux Mails m1 et m2
- Envoyer m1
- Marquer m2 comme Mail reçu
- Ajouter m1 et m2 à la boite de réception btr.
- Transférer m1 à user1@hotmail.com et l’ajouter à la boite de réception btr
- Supprimer m1 de btr
- Afficher la boite de réception.

Vous aimerez peut-être aussi