Java : iinitialiser une matrice de class

Zaylop Messages postés 5 Statut Membre -  
Zaylop Messages postés 5 Statut Membre -
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. choubaka Messages postés 5535 Date d'inscription   Statut Modérateur Dernière intervention   2 113
     
    salut

    montre le constructeur de neurone, stp
    0
  2. Zaylop
     
    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];
    }
    }
    0
  3. choubaka Messages postés 5535 Date d'inscription   Statut Modérateur Dernière intervention   2 113
     
    tu vas les chercher où les valeurs x, y ?
    pourquoi tu recrées un tableau de int déjà créé dans tes attributs ?
    0
  4. Zaylop Messages postés 5 Statut Membre
     
    Mon probléme est que lorsque je rempli la matrice l'exception NullPointerException se déclanche.
    à quoi doit ressembler le constructeur ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Blue project
     
    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];
       }
    }
    
    0
    1. tarek_dotzero Messages postés 834 Statut Membre 122
       
      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.
      0
  7. Zaylop Messages postés 5 Statut Membre
     
    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.
    0