Souci programme en JAVA

[Résolu/Fermé]
Signaler
Messages postés
153
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
4 septembre 2013
-
Messages postés
153
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
4 septembre 2013
-
Bonjour,

je débute en java et j'essaye de créé un petit programme juste pour m'entrainer, seulement j'ai une erreur (Exception in thread "main" java.lang.NullPointerException) lors du lancement (voir <===== c'est la ligne qui pose problème)

Savez vous pourquoi l'erreur ce produit ?

merci


static class Aeroport{
String nomAeroport;
String adresseAeroport;
CompagnieAerienne[] tabCompaAer=new CompagnieAerienne[2];
HangAvionCompAer[] HangAvion=new HangAvionCompAer[2];


}

static class CompagnieAerienne{
String nomCompAer;
int nbrAvionAloue;
}

static class HangAvionCompAer{
int numHangar;
AvionCompAer[] AvionComp = new AvionCompAer[2];
}

static class AvionCompAer{
int numAvion;
int nbrPlacesAvion;
String etatAvion;
String destAvion;

}

static void InitCompAer(Aeroport aero){

aero.nomAeroport="ROISSY";
aero.adresseAeroport="PARIS";

CompagnieAerienne CA1 = new CompagnieAerienne();
CA1.nbrAvionAloue=5;
CA1.nomCompAer="AIRBUS";
aero.tabCompaAer[0]=CA1;


CompagnieAerienne CA2 = new CompagnieAerienne();
CA2.nbrAvionAloue=7;
CA2.nomCompAer="BOEING";
aero.tabCompaAer[1]=CA2;


}

static void InitAvionComp(Aeroport aero){

AvionCompAer A1=new AvionCompAer();
A1.numAvion=1001;
A1.nbrPlacesAvion=200;
A1.etatAvion="GARAGE";
A1.destAvion="null";
aero.HangAvion[0].AvionComp[0]=A1; <============================

AvionCompAer A2=new AvionCompAer();
A1.numAvion=1002;
A1.nbrPlacesAvion=200;
A1.etatAvion="GARAGE";
A1.destAvion="null";
aero.HangAvion[0].AvionComp[1]=A2;

AvionCompAer B1=new AvionCompAer();
A1.numAvion=2001;
A1.nbrPlacesAvion=200;
A1.etatAvion="GARAGE";
A1.destAvion="DISABLE";
aero.HangAvion[1].AvionComp[0]=B1;

AvionCompAer B2=new AvionCompAer();
A1.numAvion=2002;
A1.nbrPlacesAvion=200;
A1.etatAvion="GARAGE";
A1.destAvion="DISABLE";
aero.HangAvion[1].AvionComp[1]=B2;



}

5 réponses

Messages postés
26
Date d'inscription
mardi 22 février 2011
Statut
Membre
Dernière intervention
25 mars 2011
4
Salut,

Quel est la valeur de aero que tu passes en argument de l'appel de ta méthode
InitAvionComp

Il y a de forte chance que ce soit
Aeroport aero
qui soit null
Messages postés
153
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
4 septembre 2013
14
j'ai essayer plusieurs truc et sa ne marche pas, je vais vous donner le code en entier :

public class HomeAeroport {

static class Aeroport{
String nomAeroport;
String adresseAeroport;
CompagnieAerienne[] tabCompaAer=new CompagnieAerienne[2];
HangAvionCompAer[] HangAvion=new HangAvionCompAer[2];


}

static class CompagnieAerienne{
String nomCompAer;
int nbrAvionAloue;
}

static class HangAvionCompAer{
int numHangar;
AvionCompAer[] AvionComp = new AvionCompAer[2];
}

static class AvionCompAer{
int numAvion;
int nbrPlacesAvion;
String etatAvion;
String destAvion;

}

static void InitCompAer(Aeroport aero){

aero.nomAeroport="ROISSY";
aero.adresseAeroport="PARIS";

CompagnieAerienne CA1 = new CompagnieAerienne();
CA1.nbrAvionAloue=5;
CA1.nomCompAer="AIRBUS";
aero.tabCompaAer[0]=CA1;


CompagnieAerienne CA2 = new CompagnieAerienne();
CA2.nbrAvionAloue=7;
CA2.nomCompAer="BOEING";
aero.tabCompaAer[1]=CA2;


}

static void InitAvionComp(Aeroport aero){

AvionCompAer A1=new AvionCompAer();
A1.numAvion=1001;
A1.nbrPlacesAvion=200;
A1.etatAvion="GARAGE";
A1.destAvion="null";
aero.HangAvion[0].AvionComp[0]=A1;

AvionCompAer A2=new AvionCompAer();
A1.numAvion=1002;
A1.nbrPlacesAvion=200;
A1.etatAvion="GARAGE";
A1.destAvion="null";
aero.HangAvion[0].AvionComp[1]=A2;

AvionCompAer B1=new AvionCompAer();
A1.numAvion=2001;
A1.nbrPlacesAvion=200;
A1.etatAvion="GARAGE";
A1.destAvion="DISABLE";
aero.HangAvion[1].AvionComp[0]=B1;

AvionCompAer B2=new AvionCompAer();
A1.numAvion=2002;
A1.nbrPlacesAvion=200;
A1.etatAvion="GARAGE";
A1.destAvion="DISABLE";
aero.HangAvion[1].AvionComp[1]=B2;



}


/*static void AfficherAeroport(Aeroport aero){

for(int i=0;i<2;i++){

System.out.println(aero.tabCompaAer[i].nomCompAer);
System.out.println(aero.tabCompaAer[i].nbrAvionAloue);
for(int y=0;y<2;y++){
System.out.println(aero.tabCompaAer[i].HangAvion.AvionComp[y].numAvion);
System.out.println(aero.tabCompaAer[i].HangAvion.AvionComp[y].nbrPlacesAvion);
}
}
}


*/



public static void main(String[] args){

Aeroport aero = new Aeroport();


InitCompAer(aero);
InitAvionComp(aero);
System.out.println(aero.HangAvion[1].AvionComp[1].numAvion);
// AfficherAeroport(aero);



}
}
Messages postés
26
Date d'inscription
mardi 22 février 2011
Statut
Membre
Dernière intervention
25 mars 2011
4
si tu ajoutes juste avant ta ligne qui fait null pointer un
System.out.println(aero.HangAvion[0]);


tu verras qu'il est null. Il ne doit pas être initialisé.
Sinon pourquoi toutes tes classes sont en static ?

Messages postés
153
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
4 septembre 2013
14
Je suis en BTS et on nous apprend comme sa ... voila ^^
Messages postés
153
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
4 septembre 2013
14
Oui c'est exact il est null, comment faire pour l'initialiser ?
Messages postés
153
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
4 septembre 2013
14
C bon je vient de trouver la solution !

Merci à toi, et je met le code qui fonctionne :

public class HomeAeroport {

static class Aeroport{
String nomAeroport;
String adresseAeroport;
CompagnieAerienne[] tabCompaAer=new CompagnieAerienne[2];
HangAvionCompAer[] HangAvion=new HangAvionCompAer[2];


}

static class CompagnieAerienne{
String nomCompAer;
int nbrAvionAloue;
}

static class HangAvionCompAer{
int numHangAvion;
AvionCompAer[] AvionComp = new AvionCompAer[2];
}

static class AvionCompAer{
int numAvion;
int nbrPlacesAvion;
String etatAvion;
String destAvion;

}



static void InitCompAer(Aeroport aero){

aero.nomAeroport="ROISSY";
aero.adresseAeroport="PARIS";



CompagnieAerienne CA1 = new CompagnieAerienne();
CA1.nbrAvionAloue=5;
CA1.nomCompAer="AIRBUS";
aero.tabCompaAer[0]=CA1;


CompagnieAerienne CA2 = new CompagnieAerienne();
CA2.nbrAvionAloue=7;
CA2.nomCompAer="BOEING";
aero.tabCompaAer[1]=CA2;


}


static void InitAvionComp(Aeroport aero){

HangAvionCompAer H1 = new HangAvionCompAer();
H1.numHangAvion=1;
aero.HangAvion[0]=H1;

HangAvionCompAer H2 = new HangAvionCompAer();
H2.numHangAvion=2;
aero.HangAvion[1]=H2;

AvionCompAer A1=new AvionCompAer();
A1.numAvion=1001;
A1.nbrPlacesAvion=200;
A1.etatAvion="GARAGE";
A1.destAvion="null";
aero.HangAvion[0].AvionComp[0]=A1;

AvionCompAer A2=new AvionCompAer();
A2.numAvion=1002;
A2.nbrPlacesAvion=200;
A2.etatAvion="GARAGE";
A2.destAvion="null";
aero.HangAvion[0].AvionComp[1]=A2;


AvionCompAer B1=new AvionCompAer();
B1.numAvion=2001;
B1.nbrPlacesAvion=400;
B1.etatAvion="GARAGE";
B1.destAvion="DISABLE";
aero.HangAvion[1].AvionComp[0]=B1;

AvionCompAer B2=new AvionCompAer();
B2.numAvion=2002;
B2.nbrPlacesAvion=400;
B2.etatAvion="GARAGE";
B2.destAvion="DISABLE";
aero.HangAvion[1].AvionComp[1]=B2;



}


static void AfficherAeroport(Aeroport aero){

System.out.println("----------------"+aero.nomAeroport+"----------------");
System.out.println("");
System.out.println("Adresse de L'Aeroport : "+aero.adresseAeroport);
System.out.println("");
for(int i=0;i<2;i++){
System.out.println("Nom Compagnie Aerienne : "+aero.tabCompaAer[i].nomCompAer);
System.out.println("Nombres d'avion aloué : "+aero.tabCompaAer[i].nbrAvionAloue);
System.out.println("Numéro de l'hangar : "+aero.HangAvion[i].numHangAvion);
System.out.println("");
for(int y=0;y<2;y++){
System.out.println("Numéro de l'avion : "+aero.HangAvion[i].AvionComp[y].numAvion);
System.out.println("Nombres de place de l'avion : "+aero.HangAvion[i].AvionComp[y].nbrPlacesAvion);
System.out.println("Etat de l'avion "+aero.HangAvion[i].AvionComp[y].etatAvion);
System.out.println("Destination de l'avion : "+aero.HangAvion[i].AvionComp[y].destAvion);
System.out.println("");
}
System.out.println("--------------------------------");
}
}






public static void main(String[] args){

Aeroport aero = new Aeroport();


InitCompAer(aero);
InitAvionComp(aero);
AfficherAeroport(aero);



}
}