Java : iinitialiser une matrice de class

Bonjour,

Je voudrais savoir comment initialiser une matrice de classes.

mon code :

class Neurone
{
int x;
int y;
int weight[]=new int[3];
}

pour la matrice : Neurone map[][]=new Neurone[10][10];

lors du remplissage de la matrice une exception NullPointerException s'affiche.

Merci d'avance.
Configuration: Windows XP
Firefox 2.0.0.11

6 réponses

  1. Re-Bonjour,

    la class Neurone :

    class Neurone
    {
    int x=0;
    int y=0;
    int weight[]=new int[3];
    public Neurone()
    {
    this.y=y;
    this.x=x;
    this.weight=new int[3];
    }
    }
    1. Modérateur
      tu vas les chercher où les valeurs x, y ?
      pourquoi tu recrées un tableau de int déjà créé dans tes attributs ?
      1. Mon probléme est que lorsque je rempli la matrice l'exception NullPointerException se déclanche.
        à quoi doit ressembler le constructeur ?
        1. class Neurone{ 
             private int x; 
             private int y; 
             private int weight[]; 
          
             // Constructeur par defaut
             public Neurone(){ 
                y=0; 
                x=0; 
                weight=new int[3]; 
             }
          
             // Constructeur autre
             public Neurone(int x, int y, int weigth){
                this.x=x;
                this.y=y;
                this.weigth=new int[weigth];
             }
          }
          
          1. Salut,

            S'il utilise ce code, le problème sera réglé.
            Mais j'ai voulu préciser un petit truc:

            Quand un message s'affiche, (soit Runtime Error ou erreur.printStackTrace()) vous pourrez suivre les différente appeles jusqu'à la source du problème: le nom de la classe et le numéro de la ligne. Cela va vous aider pendant la detection des erreurs.
        2. Salut,
          Le problème n'est pas résolu.
          Voici le code de mon programme :

          import java.awt.* ;
          import javax.swing.* ;
          import java.io.*;
          import java.math.*;
          import java.*;

          class Neurone{
          int x;
          int y;
          int weight[];

          // Constructeur par defaut
          public Neurone()
          {
          y=0;
          x=0;
          weight=new int[3];
          }

          // Constructeur autre
          public Neurone(int x, int y, int weight)
          {
          this.x=x;
          this.y=y;
          this.weight=new int[weight];
          }
          }
          class Test
          {
          public static void main(String arg[]) throws NullPointerException
          {
          final Neurone [][] map=new Neurone[10][10];

          final int x_size=10;
          final int y_size=10;
          final int dimension=3;

          /****************************************/
          /*Class génération fichier de travail*/

          class GenerateFile
          {
          public void generate_trav()
          {
          int x;
          String s;

          try{
          BufferedWriter fichier = new BufferedWriter(new FileWriter("travail.dat"));
          for(int i=0;i<99;i++)
          {
          x=(int)(Math.random()*4);

          //System.out.println(x+" ");

          fichier.write(x+" ");

          }
          fichier.flush();
          fichier.close();
          }catch(IOException e){}
          }
          }

          /***********************************/
          /*Class génération class d'apprentissage*/

          class GenerateApprent
          {
          public void generate_app()
          {
          int x;
          String s;
          try
          {
          BufferedWriter fichier = new BufferedWriter(new FileWriter("app.dat"));

          for(int i=0;i<99;i++)
          {
          x=(int)(Math.random()*4);

          // System.out.println(x+" ");

          fichier.write(x+" ");

          }
          fichier.flush();
          fichier.close();
          }catch(IOException e){}
          }
          }

          /******************************************/
          /*Class Initialisation de la carte*/
          class InitNet
          {
          int x,y;
          int i,j,k;

          public void Init()

          {

          try
          {
          FileReader fichier = new FileReader("travail.dat");
          StreamTokenizer entree = new StreamTokenizer(fichier);

          for(i=0,x=0;i<x_size;i++,x++)
          {
          for(j=0,y=0;j<y_size;j++,y++)
          {
          map[i][j].x=x;
          map[i][j].y=y;
          for(k=0;k<dimension;k++)
          {
          entree.nextToken();
          map[i][j].weight[k]=(int)entree.nval;

          }
          }
          }
          fichier.close();
          }catch(IOException e){}
          //catch(NullPointerException e){System.out.println("Erreur");}

          }

          }

          /************************************************/
          /*Exécution*/

          new GenerateFile().generate_trav();
          new GenerateApprent().generate_app();
          new InitNet().Init();

          }

          }

          L'erreur intervient lors de l'exécution des commande en gras. Lors du remplissage de la matrice de Neurone.

          Merci.