begin process at 2008 07 24 19:12:59
1 215 861 membres
416 nouveaux aujourd'hui
14 179 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : java.lang.NullPointerException [ Archives / Divers ] (issoux)

java.lang.NullPointerException le 19/10/2005 03:03:56

issoux

Bonsoir,

Je débute en Java et je reçois ce message à l'execution

Cela arrive au moment où je parcours un tableau d'objet : voila mon code


import java.util.*;

public class departement {
 
private String nom;

private personne [] tabpers;

public departement (String nom)// constructeur1 ->création d'un nouveau département


{
   this.nom=nom;
  
  
}


public departement(personne pers) // constructeur2 -> l'objet pers est la personne qui veut changer de département

{
 supprime(pers);
 
 ajout(pers); // rajjoute cette personne dans le tableau
 
 
 
}

public departement ()

{
 
}


public boolean check_nom(String nom)

{    boolean test=false;
 
 for (int j=0;j<tabpers.length;j++)
  
 
  if (tabpers[j].Getnom().equals(nom)) { test=true;}
 
 
if (test==true) { return true;} 

  
else { return false; }

}

public boolean supprime (personne pers)

{
 
 
  for (int j=0;j<tabpers.length;j++) // parcourt le tableau jusqu'au dernier
  
  {
   if (pers.Getnom().equals(tabpers[j].Getnom())) // parcourt le tableau jusqu'à ce qu'il trouve cette personne ensuite tous les champs sont remis à null;
   
                                      { tabpers[j]=null;
                                     //i--; //décremente le nombre de personne dans ce département
                                        
                                        return true;
                                      }
  }
 
 
 return false; // si pas supprimer

}

public boolean ajout(personne pers)

{
 if (pers.Getdep().equals(this.nom))// verifie si la personne est dans le bon département
  
                    {
                   for (int j=0;j<tabpers.length;j++)
                   
                   { if (tabpers[j].Getnom().equals(""))//cherche un emplacement vide
                                         
                                          {  tabpers[j]=pers; //ajoute cette personne dans le departement
                                                   //i++; // incrémente le nombre de personne  
                                                   
                                          }
                 
                   }
                   return true;
                    }
 else { return false;}
 
}


public String Getdep()

{
 return this.nom;// Pour savoir dans quel département on se trouve ...
 
}

public boolean muter(personne pers,String nom)// le nom représente le département vers lequel on veut muter

{
  
  if (pers.Setdept(nom)==true) { return true;}  // change de département .Si existe pas alors créer un nouveau département
 
           
  else return false;
}

}// fin classe

/************************************

Et ma deuxieme classe (main)


public class principal {

 private static int i;
 departement tab [];
 
 public void encode ()
 
 {
  String nom=null;
  departement d= new departement();
  String prenom=null;
  
  int annee=0;
  int mois=0;
  int jour=0;
  String dept=null;
  departement dep = null;
  
  
  System.out.println("Encodage d'une nouvelle personne");
  System.out.println("Entrez le nom : ");
  nom=clavier.lireString();
  System.out.println(" Entrez le prénom");
  prenom=clavier.lireString();
  System.out.println("Entrez le jour de naissance");
  jour=clavier.lireInt();
  System.out.println("Entrez le mois");
  mois=clavier.lireInt();
  System.out.println("Entrez l'annee ");
  annee=clavier.lireInt();
  System.out.println("Entrez votre département");
  dept=clavier.lireString();
  
  if (d.check_nom(dept)==false) // cherche si département existant si non alors on le créer
   
       {dep=new departement(dept);
  
       }
      
      
       personne obj1=new personne(nom,prenom,annee,mois,jour,dep); // créer une nouvelle personne
  
  
  
  
  if (d.ajout(obj1)==true)
   
                           { System.out.println("Ajout effectué avec succès");
                           
                           }
  
  else {System.out.println(" Ceci n'est pas le bon département");
  
       }
  
  
  
  
  
  
 }
 
 
 
 public static void main(String[] args) {
 
  
  
  
  
  int choix=0;

  principal p=new principal();
  System.out.println(" [1] Pour créer une nouvelle personne ");
  System.out.println(" [2] Pour supprimer une personne");
  System.out.println(" [3] Pour muter une personne vers un autre departement");
  
  choix=clavier.lireInt();
  
  switch (choix)
  
  { 
    case  1 : p.encode();
   
   /* case 2: delete();
   
    case 3: muter();
              
  
  }
  
  
  */
 
  
  
 }

}
 
}
//***************************************

et la classe personne

->>>>>>>>

import java.util.*;


public class personne
    {
 
 
private static int compteur;
private int id;
private String nom;
private String prenom;
private GregorianCalendar date_naiss;
private departement dep;


  
 
 
 public personne(String nom,String prenom,int annee,int mois,int jour,departement dep)
 
 
 { this.nom=nom;
   this.prenom=prenom;
   this.date_naiss.add(Calendar.DATE,jour);
   this.date_naiss.add(Calendar.MONTH,mois);
   this.date_naiss.add(Calendar.YEAR,annee);
   this.dep=dep;// dep est un département et va ajouter cette personne dans le tableau de son département !!!
  
 }
 
 
 public String Getnom()
   
    { return nom;
   
    }
   
   
    public String Getprenom()
   
    {
     return prenom;
    }
 
   
   
    public departement Getdep()
 
  {
 
   
     return dep;
  
  }
   
 
   
  public boolean Setdept(String nom)
 
  {
   departement p=new departement();
  
   if (p.check_nom(nom)==true) // si departement existe -> renvoie true
  
  {
  
   this.dep=new departement(this);// créer une nouvelle personne dans ce departement (ajout et suppresion de l'ancien)
    
   return true;
 
   }  
 
  else return false;
 
  }
   

   public void Setnom (String nom)
  
  
   {
    this.nom=nom;
   }
   
   
   
public void Setprenom(String prenom)


   { this.prenom=prenom;
  
 
   }

}

Si qqun a le courage de relire le code sinon je comprendrai ...

Les erreurs  sont

->

Exception in thread "main" java.lang.NullPointerException

at departement.check_nom(departement.java:46)

at principal.encode(principal.java:35)

at principal.main(principal.java:84)



Un grand merci à vous !!


Re : java.lang.NullPointerException le 19/10/2005 03:34:53

issoux
Oublier tout , j'ai trouver le probleme ... erreur de logique ...

Merci

Re : java.lang.NullPointerException le 19/10/2005 03:34:54

issoux
Oublier tout , j'ai trouver le probleme ... erreur de logique ...

Merci


Classé sous : public, string, return, departement, département

Participer à cet échange

Pub



Appels d'offres

Creation portail video
Budget : 3 000€
Site de e-commerce
Budget : 5 000€
Demande de devis pour ...
Budget : 7 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS