IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Les piles en Java


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Par défaut Les piles en Java
    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

    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)
    voici mon code

    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",);
    	}
     
    }

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Bonjour,

    tu n'as pas initialisé la variable tableau[], elle est donc null, et donc tenter d'y accéder va déclencher une NullPointerException.

    Il faudrait la déclarer genre comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private Object tableau[] = new Object[tailleMax];
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Les futurs tutoriels Java sur DVP ?
    Par Ricky81 dans le forum Débats
    Réponses: 65
    Dernier message: 06/01/2012, 02h33
  2. [Avis] Les meilleurs programmes Java ?
    Par christopheJ dans le forum ImageJ
    Réponses: 69
    Dernier message: 07/10/2008, 01h12
  3. Réponses: 5
    Dernier message: 15/02/2005, 10h32
  4. [Stratégie] Ant pour les tests en Java ?
    Par franckR dans le forum Tests et Performance
    Réponses: 5
    Dernier message: 08/03/2004, 09h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo