lylandra6
Messages postés7Date d'inscriptionsamedi 20 août 2005StatutMembreDernière intervention 5 juillet 2010
-
3 juil. 2010 à 01:15
lylandra6
Messages postés7Date d'inscriptionsamedi 20 août 2005StatutMembreDernière intervention 5 juillet 2010
-
3 juil. 2010 à 12:33
Bonjour.
Je travaille sur la gestion d'avion dans un parking.
Pour l'instant, je bloque sur les classes vols, qui ne donne ni les avions ni les villes quand on les liste ?!?
Quelqu'un saurait-il m'indiquer pourquoi?
Merci.
Quand je fais :
System.out.println(Vol.listeVols());
ou
System.out.println(VolArrivee.listeVols());
J'ai bien un listing, mais il indique null dans la colonne avion et dans la colonne ville. Pourquoi ?
//
// Initialise la liste des vols
//
public static void initialiseLesVols(String nomFichier)
{
int h, mn;
String num, ville, avion;
Horaire heure;
String ligne=null;
System.out.println("");
System.out.println("*** Debut de traitement "+nomFichier+" [");
try
{
BufferedReader entree = new BufferedReader(new FileReader(nomFichier));
StringTokenizer tokens;
while ((ligne=entree.readLine())!= null)
{
// lecture et traitement du vol ARRIVEE
tokens= new StringTokenizer(ligne," ");
num=tokens.nextToken();
h=Integer.parseInt(tokens.nextToken());
mn=Integer.parseInt(tokens.nextToken());
heure=new Horaire(h,mn);
ville=tokens.nextToken();
avion=tokens.nextToken();
new VolArrivee(num, heure, ville, avion);
System.out.print("Avion "+avion+" - arrivée: "+heure+" ("+ville+")");
// lecture et traitement du vol DEPART
ligne=entree.readLine();
tokens= new StringTokenizer(ligne," ");
num=tokens.nextToken();
h=Integer.parseInt(tokens.nextToken());
mn=Integer.parseInt(tokens.nextToken());
heure=new Horaire(h,mn);
ville=tokens.nextToken();
avion=tokens.nextToken();
new VolDepart(num, heure, ville, avion);
System.out.println(" - départ: "+heure+" ("+ville+")");
}
System.out.println ("] *** fin de traitement "+nomFichier);
}
catch(IOException e)
{
System.out.println ("Probleme lecture "+nomFichier);
}
}
public String getNumero()
{
return numero;
}
public String getVille()
{
return ville;
}
public String getAvion()
{
return avion;
}
public Horaire getHeure()
{
return heure;
}
public String getType()
{
return type;
}
public static Hashtable getVols()
{
return lesVols;
}
public static Vol get(String num)
{
if (lesVols.containsKey(num))
return (Vol) lesVols.get(num);
else
{
System.out.println("Le vol numéro " + num + " est inexistant.");
return null;
}
}
public static int nombre()
{
return lesVols.size();
}
lylandra6
Messages postés7Date d'inscriptionsamedi 20 août 2005StatutMembreDernière intervention 5 juillet 2010 3 juil. 2010 à 09:38
Dans la méthode initialiseLesVols,
on lit un fichier texte, avec pour un même avion le vol arrivée puis le vol départ.
Après avoir traité le vol arrivé, dans la même boucle, je traite le vol de départ (comme ci-dessous). Il y-a donc bien une référence sur VolDepart, non ?
// lecture et traitement du vol DEPART
ligne=entree.readLine();
tokens= new StringTokenizer(ligne," ");
num=tokens.nextToken();
h=Integer.parseInt(tokens.nextToken());
mn=Integer.parseInt(tokens.nextToken());
heure=new Horaire(h,mn);
ville=tokens.nextToken();
avion=tokens.nextToken();
new VolDepart(num, heure, ville, avion);
System.out.println(" - départ: "+heure+" ("+ville+")");
lylandra6
Messages postés7Date d'inscriptionsamedi 20 août 2005StatutMembreDernière intervention 5 juillet 2010 3 juil. 2010 à 11:23
N'est pas ma méthode de création qui pose problème?
Dans la classe VolArrivee par exemple, j'utilise "super", mais ne suis pas sûr de ce que je fais (j'expérimente encore) :
lylandra6
Messages postés7Date d'inscriptionsamedi 20 août 2005StatutMembreDernière intervention 5 juillet 2010 3 juil. 2010 à 12:33
Je pense avoir compris :
il y-a confusion entre attribut et variable d'appel.
Si je mets
public VolArrivee(String num, Horaire hr, String ville0, String avion0)
{
super(num, hr, ville0, avion0);
lesVols.put(num,this);
}