Java et les tableaux (J’ai un gros-petit problème)

Java et les tableaux (J’ai un gros-petit problème) - Java - Programmation

Marsh Posté le 29-06-2006 à 10:21:14    

Bonjour à tous,
Pour aller vite voila monde problème :  
 
Je veux créer un simple tableau de cMissiles (classe toute simple que j’ai créé).
Mais voilà, Java est un peu capricieux, voila ce qu’il me dit :  
 

Code :
  1. int Num = 50;
  2. cMissile Tableau[] = new cMissile[Num];
  3. Tableau[0].Degat = 1; // <= ici ya une erreur


 
 
L’erreur en question :

Code :
  1. Exception in thread "main" java.lang.NullPointerException
  2.         at WriteFileTCPTest.main(WriteFileTCPTest.java:23)


 
Et la classe, au cas ou …
 

Code :
  1. import java.awt.geom.Point2D;
  2. public class cMissile
  3. {
  4. public Point2D.Double Position = new Point2D.Double();
  5. public Point2D.Double Vitesse = new Point2D.Double();
  6. public double r = 0;
  7. public int Degat = 1;
  8. public int Type = 0;
  9. public boolean Active = false;
  10. public cRobot Prop = null;
  11. }


 
 
Si vous avez une idées de ce qui pourrais lui faire entendre raison, ça m’intéresse.
 
Voila, d’avance merci


Message édité par Lereveur le 29-06-2006 à 10:22:06
Reply

Marsh Posté le 29-06-2006 à 10:21:14   

Reply

Marsh Posté le 29-06-2006 à 10:22:59    

t'as pas de constructeurs dans ta classe :heink:

Reply

Marsh Posté le 29-06-2006 à 10:26:50    

Code :
  1. int Num = 50;
  2. cMissile Tableau[] = new cMissile[Num];


 
Cette ligne créé un tableau vide de 50 éléments (tous les éléments sont à null)
 
Tu dois mettre des éléments dedans avant de pouvoir les récupérer...
 
PS : en java, le nom des classes commance par une majuscule. Ici, je vois pas l'intéret de mettre un 'c' devant Missile


Message édité par Bidem le 29-06-2006 à 10:28:30
Reply

Marsh Posté le 29-06-2006 à 10:29:19    

sebou77:
 
??? Il en faut obligatoirement ???
Je croyais que le "public Point2D.Double Vitesse = new Point2D.Double();" fesais l'affaire, et que quand aux int, c'était inutile ...
 
J'ai modifié la classe en :  
public class cMissile
 {
 public Point2D.Double Position = new Point2D.Double();
 public Point2D.Double Vitesse = new Point2D.Double();
   
 public double r = 0;
 public int Degat = 1;
 public int Type = 0;
 public boolean Active = false;
 public cRobot Prop = null;
 
 cMissile()
  {
  Position = new Point2D.Double();
  Vitesse = new Point2D.Double();  
  }
 
 }
 
Mais le problème reste le même.
 
bidem:
 
Comment je peux le remplir alors ???


Message édité par Lereveur le 29-06-2006 à 10:30:42
Reply

Marsh Posté le 29-06-2006 à 10:55:38    

tu fais une boucle sur le tableau et tu affectes chaque élément...
 

Code :
  1. int Num = 50;
  2. Missile[] tableau = new Missile[Num];
  3. for (int i = 0; i < tableau.length; i++) {
  4.   tableau[i] = new Missile();
  5. }


 
PS : convention de nommage


Message édité par Bidem le 29-06-2006 à 10:55:53
Reply

Marsh Posté le 29-06-2006 à 11:00:07    

... okay ... c'est pas très propre mais merci beaucoup...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed