Java : iinitialiser une matrice de class
Zaylop
Messages postés
5
Statut
Membre
-
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.
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
-
salut
montre le constructeur de neurone, stp -
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];
}
} -
tu vas les chercher où les valeurs x, y ?
pourquoi tu recrées un tableau de int déjà créé dans tes attributs ?
-
Mon probléme est que lorsque je rempli la matrice l'exception NullPointerException se déclanche.
à quoi doit ressembler le constructeur ? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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]; } }-
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.
-
-
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.