Salut!
J'essaye de traiter les pile en Java avec l'implémentation des interfaces, j'ai des problème avec mon code
j'ai un tableau de type object je voulais insérer un entier puis un float puis un string mais j'ai une erreur de ce type
voici mon codeCode:
1
2
3 Exception in thread "main" java.lang.NullPointerException at PileTableau.empiler(PileTableau.java:21) at TestPile.main(TestPile.java:18)
Code:
1
2
3
4
5
6
7
8
9
10 public interface Pile { public void empiler(Object element); public void depiler() ; public boolean isPileVide(); public Object sommet(); }
Code:
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 public class PileTableau implements Pile { private int tailleMax = 1000; // Taille maximale private int sommet = -1; // Sommet du tableau private Object tableau[]; public PileTableau(int tmax) { this.tailleMax=tmax; } @Override public void empiler (Object x) { //ajouter un new sommet++ ; tableau [sommet] =x ; //erreur ici } @Override public void depiler() { if (isPileVide ()) System.out.println ("Pile vide.") ; else { tableau [sommet] = null ; sommet-- ; } } @Override public boolean isPileVide() { if(sommet == -1) return true; else return false; } @Override public Object sommet() { // TODO Auto-generated method stub return tableau[sommet]; } }
Code:
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 import java.util.Scanner; public class TestPile { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub PileTableau p=new PileTableau(1000); Scanner s = new Scanner(System.in); // pour lire un entier n il suffit décrire System.out.println("veuillez saisir un entier"); int n = s.nextInt(); p.empiler(n);//empiler un entier // pour lire un flottant x : System.out.println("veuillez saisir un float"); float x = s.nextFloat(); p.empiler(x);//empiler un float // pour lire un double y : System.out.println("veuillez saisir un double"); double y = s.nextDouble(); p.empiler(y);//empiler un double // Pour lire une chaîne System.out.println("veuillez saisir un String"); String mot = s.next (); p.empiler(mot);//empiler un string System.out.println("veuillez saisir un String"); String ligne = s.nextLine(); p.empiler(ligne); // for(int i=0;i<p.;i++) //System.out.println("les éléments de la pile sont :\n",); } }