Java : iinitialiser une matrice de class

Fermé
Zaylop Messages postés 5 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 27 avril 2008 - 27 avril 2008 à 00:33
Zaylop Messages postés 5 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 27 avril 2008 - 27 avril 2008 à 13:16
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.
A voir également:

6 réponses

choubaka Messages postés 39422 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 28 mars 2025 2 104
27 avril 2008 à 00:51
salut

montre le constructeur de neurone, stp
0
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
choubaka Messages postés 39422 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 28 mars 2025 2 104
27 avril 2008 à 01:00
tu vas les chercher où les valeurs x, y ?
pourquoi tu recrées un tableau de int déjà créé dans tes attributs ?
0
Zaylop Messages postés 5 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 27 avril 2008
27 avril 2008 à 01:19
Mon probléme est que lorsque je rempli la matrice l'exception NullPointerException se déclanche.
à quoi doit ressembler le constructeur ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Blue project
27 avril 2008 à 12:28
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
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 122
27 avril 2008 à 12:36
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
Zaylop Messages postés 5 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 27 avril 2008
27 avril 2008 à 13:16
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