Java erreur: java.lang.NullPointerException
Fermé
Marwawiss
Messages postés
10
Date d'inscription
lundi 30 avril 2012
Statut
Membre
Dernière intervention
1 mai 2012
-
1 mai 2012 à 13:35
Marwawiss Messages postés 10 Date d'inscription lundi 30 avril 2012 Statut Membre Dernière intervention 1 mai 2012 - 1 mai 2012 à 21:56
Marwawiss Messages postés 10 Date d'inscription lundi 30 avril 2012 Statut Membre Dernière intervention 1 mai 2012 - 1 mai 2012 à 21:56
A voir également:
- Java erreur: java.lang.NullPointerException
- Erreur 0x80070643 - Accueil - Windows
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
2 réponses
katsuo49
Messages postés
330
Date d'inscription
vendredi 19 juin 2009
Statut
Membre
Dernière intervention
11 novembre 2014
25
1 mai 2012 à 16:10
1 mai 2012 à 16:10
il faudrait que tu nous donne ta classe complète. Mais un java.lang.NullPointerException veut dire que tu utilises un objet que tu n'as pas instancié en général.
Marwawiss
Messages postés
10
Date d'inscription
lundi 30 avril 2012
Statut
Membre
Dernière intervention
1 mai 2012
1 mai 2012 à 18:34
1 mai 2012 à 18:34
il n'accepte ni get ni set il ma dit meme erreuur !!
la classe Document:
package rouis_marwa2;
public class Document2 {
private String titre;
private static int num_identification;
private int nbr_pages;
private String nom_auteur;
Document2(String t,int i,int nb,String n)/*Constructeur avec paramètre*/
{
titre=t;
num_identification=i;
nbr_pages=nb;
nom_auteur=n;
}
public void edition ()
{
{
System.out.println("le titre du document est: "+titre);
System.out.println("le numero d'identification du document est: "+num_identification);
System.out.println("le nombre de pages du document est: "+nbr_pages);
System.out.println("le nom de l'auteur du document est: "+nom_auteur);
}
}
public String getTitre()
{
return titre;
}
public int getNum_id()
{
return num_identification;
}
public int getNbr_pg()
{
return nbr_pages;
}
public String getNom()
{
return nom_auteur;
}
public void setTitre(String t)
{
this.titre=t;
}
public void setNum_id(int id)
{
Document2.num_identification=id;
}
public void setNbr_pg(int nb)
{
this.nbr_pages=nb;
}
public void setNom(String n)
{
this.nom_auteur=n;
}
}
La classe Bibliothèque:
package rouis_marwa2;
import java.util.Scanner;
public class Bibliothèque2
{
private int nbr_document;
private Document2[] listdoc = new Document2[nbr_document];
public Bibliothèque2(int nd)
{
this.nbr_document=nd;
listdoc = new Document2[nbr_document];
int i=0;
for(i=0;i<nbr_document;i++)
{
Scanner k1 = new Scanner(System.in);
System.out.println("Donner le titre n°"+i);// pour entrer le nouveau titre
String n1=k1.nextLine();
Scanner k2 = new Scanner(System.in);
System.out.println("Donner le numero d'identification n°"+i);// pour entrer le nouveau nbr page
int n2=k2.nextInt();
Scanner k3 = new Scanner(System.in);
System.out.println("Donner le nombre de page n°"+i);// pour entrer le nouveau nbr page
int n3=k3.nextInt();
Scanner k4 = new Scanner(System.in);
System.out.println("Donner le nom de l'auteur n°"+i);// pour entrer le nouveau nom
String n4=k4.nextLine();
listdoc[i].setTitre(n1);
listdoc[i].setNum_id(n2);
listdoc[i].setNbr_pg(n3);
listdoc[i].setNom(n4);
}
}
public int capacité()
{
System.out.println("le capacité maximale= "+listdoc.length);
return listdoc.length;
}
public void ajout_doc(Document2 d)
{
int i=0;
for(i=0;i<nbr_document;i++)
{
if (listdoc[nbr_document].getNum_id() == d.getNum_id()
&&
listdoc[nbr_document].getNum_id() > d.getNum_id())
System.out.println("le num_id ajouté n'est pas à l'ordre!!!");
else
listdoc[nbr_document]=d;
nbr_document++;
System.out.println("le document est ajouté avec succée !!!");
}
}
public Document2 recherche_doc(int num_id)
{ Document2 doc=null;
int i=0;
for (i=0;i<nbr_document;i++)
{
Document2 d=listdoc[i];
if (num_id==d.getNum_id())
{
System.out.println("***********le document recherché est :********");
doc=listdoc[i];
doc.edition();
}
else
System.out.println("****le document recherché n'existe pas!***** ");
}
return doc;
}
public void modifier_doc(int num_id)
{
int i=0;
for(i=0;i<nbr_document;i++)
{
if (num_id==listdoc[i].getNum_id())
{
Scanner i1 = new Scanner(System.in);
System.out.println("Donner un nouveau titre");// pour entrer le nouveau titre
String n1=i1.nextLine();
Scanner i2 = new Scanner(System.in);
System.out.println("Donner un nouveau nombre de page");// pour entrer le nouveau nbr page
int n2=i2.nextInt();
Scanner i3 = new Scanner(System.in);
System.out.println("Donner un nouveau nom de l'auteur");// pour entrer le nouveau nom
String n3=i3.nextLine();
listdoc[i].setTitre(n1) ;
listdoc[i].setNbr_pg(n2);
listdoc[i].setNom(n3);
}
}
}
public void supprim_doc(int num_id)
{
int i,j=0;
for(i=0;i<nbr_document;i++)
{
for(j=i;j<nbr_document;j++)
{
listdoc[j]=listdoc[j+1];
}
nbr_document=nbr_document+1;
}
}
public void inventaire_doc()
{
int i=0;
for (i=0;i<nbr_document;i++)
{
listdoc[i].edition();
}
}
public int getNombre_doc()
{
nbr_document=listdoc.length;
return nbr_document;
}}
la classe Document:
package rouis_marwa2;
public class Document2 {
private String titre;
private static int num_identification;
private int nbr_pages;
private String nom_auteur;
Document2(String t,int i,int nb,String n)/*Constructeur avec paramètre*/
{
titre=t;
num_identification=i;
nbr_pages=nb;
nom_auteur=n;
}
public void edition ()
{
{
System.out.println("le titre du document est: "+titre);
System.out.println("le numero d'identification du document est: "+num_identification);
System.out.println("le nombre de pages du document est: "+nbr_pages);
System.out.println("le nom de l'auteur du document est: "+nom_auteur);
}
}
public String getTitre()
{
return titre;
}
public int getNum_id()
{
return num_identification;
}
public int getNbr_pg()
{
return nbr_pages;
}
public String getNom()
{
return nom_auteur;
}
public void setTitre(String t)
{
this.titre=t;
}
public void setNum_id(int id)
{
Document2.num_identification=id;
}
public void setNbr_pg(int nb)
{
this.nbr_pages=nb;
}
public void setNom(String n)
{
this.nom_auteur=n;
}
}
La classe Bibliothèque:
package rouis_marwa2;
import java.util.Scanner;
public class Bibliothèque2
{
private int nbr_document;
private Document2[] listdoc = new Document2[nbr_document];
public Bibliothèque2(int nd)
{
this.nbr_document=nd;
listdoc = new Document2[nbr_document];
int i=0;
for(i=0;i<nbr_document;i++)
{
Scanner k1 = new Scanner(System.in);
System.out.println("Donner le titre n°"+i);// pour entrer le nouveau titre
String n1=k1.nextLine();
Scanner k2 = new Scanner(System.in);
System.out.println("Donner le numero d'identification n°"+i);// pour entrer le nouveau nbr page
int n2=k2.nextInt();
Scanner k3 = new Scanner(System.in);
System.out.println("Donner le nombre de page n°"+i);// pour entrer le nouveau nbr page
int n3=k3.nextInt();
Scanner k4 = new Scanner(System.in);
System.out.println("Donner le nom de l'auteur n°"+i);// pour entrer le nouveau nom
String n4=k4.nextLine();
listdoc[i].setTitre(n1);
listdoc[i].setNum_id(n2);
listdoc[i].setNbr_pg(n3);
listdoc[i].setNom(n4);
}
}
public int capacité()
{
System.out.println("le capacité maximale= "+listdoc.length);
return listdoc.length;
}
public void ajout_doc(Document2 d)
{
int i=0;
for(i=0;i<nbr_document;i++)
{
if (listdoc[nbr_document].getNum_id() == d.getNum_id()
&&
listdoc[nbr_document].getNum_id() > d.getNum_id())
System.out.println("le num_id ajouté n'est pas à l'ordre!!!");
else
listdoc[nbr_document]=d;
nbr_document++;
System.out.println("le document est ajouté avec succée !!!");
}
}
public Document2 recherche_doc(int num_id)
{ Document2 doc=null;
int i=0;
for (i=0;i<nbr_document;i++)
{
Document2 d=listdoc[i];
if (num_id==d.getNum_id())
{
System.out.println("***********le document recherché est :********");
doc=listdoc[i];
doc.edition();
}
else
System.out.println("****le document recherché n'existe pas!***** ");
}
return doc;
}
public void modifier_doc(int num_id)
{
int i=0;
for(i=0;i<nbr_document;i++)
{
if (num_id==listdoc[i].getNum_id())
{
Scanner i1 = new Scanner(System.in);
System.out.println("Donner un nouveau titre");// pour entrer le nouveau titre
String n1=i1.nextLine();
Scanner i2 = new Scanner(System.in);
System.out.println("Donner un nouveau nombre de page");// pour entrer le nouveau nbr page
int n2=i2.nextInt();
Scanner i3 = new Scanner(System.in);
System.out.println("Donner un nouveau nom de l'auteur");// pour entrer le nouveau nom
String n3=i3.nextLine();
listdoc[i].setTitre(n1) ;
listdoc[i].setNbr_pg(n2);
listdoc[i].setNom(n3);
}
}
}
public void supprim_doc(int num_id)
{
int i,j=0;
for(i=0;i<nbr_document;i++)
{
for(j=i;j<nbr_document;j++)
{
listdoc[j]=listdoc[j+1];
}
nbr_document=nbr_document+1;
}
}
public void inventaire_doc()
{
int i=0;
for (i=0;i<nbr_document;i++)
{
listdoc[i].edition();
}
}
public int getNombre_doc()
{
nbr_document=listdoc.length;
return nbr_document;
}}
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
1 mai 2012 à 19:52
1 mai 2012 à 19:52
Et où est le main ?
Marwawiss
Messages postés
10
Date d'inscription
lundi 30 avril 2012
Statut
Membre
Dernière intervention
1 mai 2012
1 mai 2012 à 20:04
1 mai 2012 à 20:04
package rouis_marwa2;
public class Test_biblio2
{
public static void main(String[]args)
{
Bibliothèque2 b=new Bibliothèque2(2);
Document2 d=new Document2 ("oui",1,3,"res");
b.ajout_doc(d);
}
}
public class Test_biblio2
{
public static void main(String[]args)
{
Bibliothèque2 b=new Bibliothèque2(2);
Document2 d=new Document2 ("oui",1,3,"res");
b.ajout_doc(d);
}
}
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
Modifié par KX le 1/05/2012 à 20:41
Modifié par KX le 1/05/2012 à 20:41
Dans ton constructeur Bibliotheque2, tu ne peux pas faire listDoc[i].setTitre car listDoc[i] n'existe pas !
Il faut que tu utilises ton constructeur Document2.
Remarque : il est inutile de créer autant de Scanner que tu as d'entrée, un seul suffit !
Remarque : il y a d'autres erreurs après, mais tu arriveras peut-être à les corriger tout seul...
Il faut que tu utilises ton constructeur Document2.
Remarque : il est inutile de créer autant de Scanner que tu as d'entrée, un seul suffit !
public class Bibliothèque2 { private int nbr_document; private Document2[] listdoc; // pas d'initialisation ici, on ne connait pas nbr_document ! private static final Scanner clavier = new Scanner(System.in); public Bibliothèque2(int nd) { nbr_document=nd; listdoc = new Document2[nbr_document]; for (int i=0; i<nbr_document; i++) { // pour entrer le nouveau titre System.out.println("Donner le titre n°"+i); String n1 = clavier.nextLine(); // pour entrer le nouveau nbr page System.out.println("Donner le numero d'identification n°"+i); int n2 = clavier.nextInt(); clavier.nextLine(); // pour entrer le nouveau nbr page System.out.println("Donner le nombre de page n°"+i); int n3 = clavier.nextInt(); clavier.nextLine(); // pour entrer le nouveau nom System.out.println("Donner le nom de l'auteur n°"+i); String n4 = clavier.nextLine(); listdoc[i] = new Document2(n1, n2, n3, n4); } }
Remarque : il y a d'autres erreurs après, mais tu arriveras peut-être à les corriger tout seul...
Marwawiss
Messages postés
10
Date d'inscription
lundi 30 avril 2012
Statut
Membre
Dernière intervention
1 mai 2012
1 mai 2012 à 21:01
1 mai 2012 à 21:01
mais après, dans la méthode d'ajout document j'ais pas comprit pourquoi il n'accepte pas cette ligne:
(listdoc[nbr_document].getNum_id() == d.getNum_id()
il affiche :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at rouis_marwa2.Bibliothèque2.ajout_doc(Bibliothèque2.java:56)
at rouis_marwa2.Test_biblio2.main(Test_biblio2.java:10)
(listdoc[nbr_document].getNum_id() == d.getNum_id()
il affiche :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at rouis_marwa2.Bibliothèque2.ajout_doc(Bibliothèque2.java:56)
at rouis_marwa2.Test_biblio2.main(Test_biblio2.java:10)
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
1 mai 2012 à 21:06
1 mai 2012 à 21:06
Parce que les indices d'un tableau de taille n doivent être entre 0 et n-1
Ici tu mets listdoc[nbr_document] ce qui est bien sûr trop !
Ici tu mets listdoc[nbr_document] ce qui est bien sûr trop !