Bonjour tout le monde.
J'ai des difficultés à comprendre comment ça fonctionne.
Un ami m'a donné les classes suivante et j'essai de faire le "main" pour afficher les lignes :
- Coupe fraise framboise cassis + 6,00
- Coupe chocolat blanc chocolat au lait chocolat noir + 6,00
Voici les class :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public abstract class CoupeGlacee { protected List Parfums; protected CoupeGlacee() {} public String description() { StringBuffer sb = new StringBuffer(""); for(Iterator it = Parfums.iterator();it.hasNext();) { sb.append(it.next().toString()); } return sb.toString(); } public abstract float prix(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class TripleChocolat extends CoupeGlacee { public static final TripleChocolat SINGLETON = new TripleChocolat(); private TripleChocolat() { this.Parfums.add(Parfum.CHOCOLAIT); this.Parfums.add(Parfum.CHOCONOIR); this.Parfums.add(Parfum.CHOCOBLANC); } public float prix() { return (float)6; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class FruitsRouges extends CoupeGlacee { public static final FruitsRouges SINGLETON = new FruitsRouges(); private FruitsRouges() { this.Parfums.add(Parfum.FRAISE); this.Parfums.add(Parfum.FRAMBOISE); this.Parfums.add(Parfum.CASSIS); } public float prix() { return (float)5.5; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public class Parfum { private String nom; public static final Parfum FRAISE = new Parfum("fraise"); public static final Parfum FRAMBOISE = new Parfum("framboise"); public static final Parfum CASSIS = new Parfum("cassis"); public static final Parfum CHOCOLAIT = new Parfum("chocolat au lait"); public static final Parfum CHOCONOIR = new Parfum("chocolat noit"); public static final Parfum CHOCOBLANC = new Parfum("chocolat blanc"); private Parfum(String s) { this.nom = s; } @Override public String toString() { return this.nom; } }
Voilà. Ce sont les class que mon ami m'a donné pour m'exercer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public class Commande { protected List lesCoupes; public Commande() {} public void addCoupeGlacee(CoupeGlacee coupe) { this.lesCoupes.add(coupe); } public void editerFacture(PrintWriter writer) { float total = 0; for (Iterator it = this.lesCoupes.iterator(); it.hasNext();) { CoupeGlacee coupe = (CoupeGlacee) it.next(); writer.println(coupe.description()+" + "+coupe.prix()); total = total + coupe.prix(); } writer.println(" TOTAL : "+total); } }
Cependant je n'arrive pas à afficher les lignes cité au début.
Je sais que l'on ne peut pas instancier une classe abstraite, mais la je ne vois vraiment pas comment faire.
Si une personne passe par ici et à le temps de partager son savoir je suis toute ouï ^^
Amicalement Boobs60.
Partager