Bonjour a tous, étant nouveau sur le forum je ne sais pas si mon problème rentre dans cette rubrique néanmoins j'essaye.
Je travaille sur un exercice ou je dois ajouter des légumes a une soupe, les deux légumes sont soit des carrotes soit des patates et hérite de la classe Vegetable dans laquelle est factorisé l'un de leur attributs (le poids).
Dans la classe Soup j'ai ensuite défini une méthode add pour ajouter les légumes a la soupe ( dans un tableau). Mais voila on me demande maintenant de créer une méthode donnant le poids en épluchure des légumes, sachant que le poids diffère en fonction du légumes. Le poids d'épluchure d'une carotte est 1/10 de son poids et pour celui d'une patate c'est pareil + 10 g par nbyeux (germes) La redéfinition de classe est alors conseillé, ce qui parait logique, néanmoins je ne vois pas comment mettre cela en place. Voila mon code pour illustrer(je ne met que la partie qui nous intéresse).
Le problème est que dans la methode getPeelingWeight de Soup on me demande un réference static et je ne vois pas pourquoi.. Voila c'est un peu long et un peu fouillis mais j'aimerai beaucoup avoir une discussion la dessus avec vous car je veux vraiment progresser
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 public class Carrot extends Vegetable { int taille; double PoidsCarrot; Carrot(double p, int t){ this.Poids = p; this.taille = t; public void getPeelingWeight() { PoidsCarrot += this.Poids * 1/10; } } public class Potatoe extends Vegetable { double nbyeux; double PoidsPotatoe; Potatoe(double pp, int nby){ this.Poids = pp; this.nbyeux = nby; } Potatoe(double pp){ this.Poids = pp; nbyeux = (int) ( (double) pp * (double) 10); } public void getPeelingWeight() { PoidsPotatoe += this.Poids * (1/10) + (this.nbyeux * 10); } } public abstract class Vegetable { double Poids; double Poidst; abstract public void getPeelingWeight(); } public class Soup { static Vegetable[] s = new Vegetable[100]; int count = 0; public void add(Vegetable b){ s[count] = b; count += 1; } public void getPeelingWeight(){ for(Vegetable t: s) { Vegetable.getPeelingWeight(); } } } public class Test2 { public static void main(String[] args) { s.add(new Potatoe(0.3, 10)); s.add(new Carrot(0.25, 30)); System.out.println(s.getPeelingWeight()); } }
Partager