R6vision
ProblEme:
Le code suivant fait partie d'une application plus grande de gestion des membres d'une
enseigne commercialequi concerne une gestion simplifi6e des points de fid6lit6s. Nous avons
une classe Membre qui h6rite d'une classe abstraite User dont l'un des attributs est de type
Compte. La classe Membre impl6mente aussi l'interface lMembre.
Terminer le code manquant sur la feuille de l'examen :
public class Compte {
private String login;
private String password ;
public Compte(String login, String password){
[Link] :........... ............. ;
)
public Compt e(Compte compte){
[Link]:
[Link] :........... ............. ;
// on suppose que les getters & setters sont foumis en cas de besoin
@Override
public String toStringQ {
return "login:" + login + ", password:" + password ;
)
)
Page 1 sur 5
public abstract class User {
private int code;
private String nom;
private Compte compte;
public User(int code, String nom, String login, String password) {
[Link]: code;
[Link]: nom;
[Link]:
\I
public User(User user) {
[Link]: [Link];
[Link]: [Link];
[Link] :...............
I
J
// les getters & setters sont fournis
@Ovenide
public String toString0 {
retum "code:" f code t ", nom:" + nom f ", compte: {" +
+rrl rt
't'
public interface IMembre {
public vo id aj outerpointir id 61it6s(int nombre) ;
public void retirerPointFid6lit6s(int nombre) throws PointsFid6lit6sException;
public int convertirPFenDH0;
public void afficherQ;
)
public class Membre extends Usei implements IMembre{
private int pointFid6lit6s;
private static int totalPointsFidelit6s:0 /ltotal de tous les membres
public Membre( int code, String nom, String login, String password,int pointFid6lit6s) {
...'..'.;
: pointFid 6lit6s;
[Link] 6lit6s
totalPointsFidelit6s:. ...... ..;
Page 2 sur 5
@Override
public void aj outerP ointFid6lit6s(int nombre) {
@Override
public void retirerPointFid6lit6s(int nombre) throws PointsFid6lit6sException{
if (nombre>[Link] 6lit6s)
)
// points est 6quivalent d 1 DH
15
@Override
public int convertirPFenDH$ {
return pointFid 6lit 6sl I 5 ;
)
@Override
public String toStringQ {
retum.
@Override
public void afficher0
t
[Link]( ....................);
public class PointsFid6lit6sException extends Exception {
public PointsFid6lit6sException(String message) {
Page 3 sur 5
public class Main {
public static void main(String[] arg$ {
IMembre imembre:new Membre(l2, "Alaoui", "AD000", "success4ever", 10);
imembre. ajouterPointFid6lit6s(20);
[Link]("valeur en dirhams des points de fiddlit6s :"
* imembre. convertirPF enDH 0) ;
[Link];
ll Appeler la m6thode retirerPointFid6lit6s(100) sur imembre puis afficher
Bon courage !
Page 4 sur 5
Exercice 1:
Donnez le r6sultat d'affichage de la m6thode showMessage dans la m6thode main en justifiant
la r6ponse.
// D6finissons une interface avec une m6thode
interface Message {
void showMessageQ;
\t
// Classe de base A qui impl6mente f interface Message
class A implements Message {
public void showMessage0 {
System. [Link]("Message from Class A ") ;
)
)
// Classe B h6rite de A et impl6mente f interface Message
class B extends A implements Message {
public void showMessage0 {
System. [Link]("Message from Class B ");
)
)
public class Main t
public static void main(String[] arg$ {
A a: new A0;
B b: new B0;
[Link];
a:b;
[Link];
Itft
Page 5 sur 5