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 code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Exception in thread "main" java.lang.NullPointerException at PileTableau.empiler(PileTableau.java:21) at TestPile.main(TestPile.java:18)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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 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 : 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 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",); } }
Partager