Bonjour,

J'ai repris un ancien contrôle pour réviser mon Java. On me demande de créer une classe cocktail qui prend 3 attributs (un nom, un tableau "boissons" (5 boissons max) qui liste les boissons, et un tableau "volume" qui associe pour chaque boisson son volume en fraction de litre (ex : 0.2l)).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
public class Cocktail {
	private String nom;
	private String boissons[];
	private double volume[];
	private int i=0;
 
	public Cocktail(String nom)
	{
		  this.setNom(nom);
	}
Jusque là je n'ai pas d'ennui. Ensuite on me demande de créer deux méthodes ajouterBoissons : qui ajoute une boisson au cocktail et doit permettre de presciser le volume et une méthode listerBoisson qui renvoie un String contenant la liste des boissons avec leurs volume comme ça :
<nom du cocktail> : volume l de boisson, volume1 l de boisson1,etc...
ex: Punch : 0.6l de Rhum,0.2l de jus d'orange,...

Je vous poste mon fichier Cocktail.java entier :
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
 
public class Cocktail {
	private String nom;
	private String boissons[];
	private double volume[];
	private int i=0;
 
	public Cocktail(String nom)
	{
		  this.setNom(nom);
	}
 
	public void ajouterBoisson (String b, double v){
 
		boissons[i] = b;
		volume[i] = v;
		i++;
	}
	public void listerBoissons(){
		System.out.println(nom+":");
		for (int i=0 ; i < boissons.length ; i++){
			System.out.println(boissons[i]);
		}
	}
 
 
	  public double calculerVolumeTotal(){
	  double tot=0;
	  		for (int j=0 ; j < i ; j++){
			 tot=tot+volume[j];
		}
	  		return tot;
	  }
 
	public String getNom() {
		return nom;
	}
 
	public void setNom(String nom) {
		this.nom = nom;
	}
 
	public double [] getVolume() {
		return volume;
	}
 
	public void setVolume(double [] volume) {
		this.volume = volume;
	}
 
	public String[] getBoissons() {
		return boissons;
	}
}
ainsi que le main où je pense qu'il n'y a pas d'erreurs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
public class Cocktail_Test {
	public static void main(String[] args) {
		Cocktail essai = new Cocktail("Punch");
 
		essai.ajouterBoisson("rhum",0.6);
		essai.ajouterBoisson("jus d'orange", 0.2);
		essai.ajouterBoisson("grenadine", 0.1);
		essai.listerBoissons();
	}
 
}
A la compilation éclipse me renvoi :

Exception in thread "main" java.lang.NullPointerException
at Cocktail.ajouterBoisson(Cocktail.java:15)
at Cocktail_Test.main(Cocktail_Test.java:6)

Merci d'avance pour votre aide