[JAVA]Probleme initialisation d'une matrice
Suze
-
Suze -
Suze -
Bonjour,
je n'arrive pas a résoudre mon probleme qui est le suivant :
Dans une premiere classe que voici nommé xxxxx, j'ai ecrit :
public class xxxxx {
private int i;
private int j;
private char[][] map;
//méthodes
public void initMap(){
for(i=1; i<this.map[0].length; i++){
for(j=1; j<this.map.length; j++){
this.map[i][j] = '.';
}
}
}
}
Puis dans une autre j'ai ecrit :
public class TestTP {
public static void main(String[] args) {
char map2[][] = new char[10][10];
map2.initMap(); // => (ici)
}
}
Mais ca ne marche pas, l'erreur se fait au niveau de (ici) et le testTP ne m'initialise donc pas ma matrice map2.
Pourriez vous m'iadez a resoudre ce probleme svp ??
Merci d'avance a tous ;)
Suze
je n'arrive pas a résoudre mon probleme qui est le suivant :
Dans une premiere classe que voici nommé xxxxx, j'ai ecrit :
public class xxxxx {
private int i;
private int j;
private char[][] map;
//méthodes
public void initMap(){
for(i=1; i<this.map[0].length; i++){
for(j=1; j<this.map.length; j++){
this.map[i][j] = '.';
}
}
}
}
Puis dans une autre j'ai ecrit :
public class TestTP {
public static void main(String[] args) {
char map2[][] = new char[10][10];
map2.initMap(); // => (ici)
}
}
Mais ca ne marche pas, l'erreur se fait au niveau de (ici) et le testTP ne m'initialise donc pas ma matrice map2.
Pourriez vous m'iadez a resoudre ce probleme svp ??
Merci d'avance a tous ;)
Suze
A voir également:
- [JAVA]Probleme initialisation d'une matrice
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
7 réponses
Il faut que tu initialises ton tableau dans un constructeur:
Ensuite pour ce code:
map2 est de type char[][] donc il n'a pas de méthode initMap(), par contre les objets de type Prout ont cette méthode, je pense que tu voulais faire ça:
D'ailleurs autant mettre le code de initMap dans le constructeur de Prout.
public class Prout {
private int i;
private int j;
private char[][] map;
public Prout()
{
this.map = new char[10][10];
}
//méthodes
public void initMap()
{
//ATTENTION LES INDEX DE TABLEAUX COMMENCENT A 0 ET J'AI CORRIGE D'AUTRES TRUCS AUSSI
for(i=0; i<this.map.length; i++)
{
for(j=0; j<this.map[i].length; j++)
{
this.map[i][j] = '.';
}
}
}
Ensuite pour ce code:
public class TestTP {
public static void main(String[] args) {
char map2[][] = new char[10][10];
map2.initMap(); // => (ici)
}
map2 est de type char[][] donc il n'a pas de méthode initMap(), par contre les objets de type Prout ont cette méthode, je pense que tu voulais faire ça:
public class TestTP
{
public static void main(String[] args)
{
Prout p = new Prout();
p.initMap();
}
}
}
D'ailleurs autant mettre le code de initMap dans le constructeur de Prout.
Alors tout d'abord un grand MERCI :)
Ca y'est ca marche ...
Pour l'histoire des tableau qui commence a 0 ne t'en fais pas je le sais mais c'est as pour rien que j'ai mis 1 donc la pas de prob.
Ensuite le coup du constructeurs ca m'enerve un peu car quand meme je le creait mon tableau dans la classe testTP donc je comprennais pas ... mais bon, tout marche nikel, encore merci a toi ...
:)
Suze
Ca y'est ca marche ...
Pour l'histoire des tableau qui commence a 0 ne t'en fais pas je le sais mais c'est as pour rien que j'ai mis 1 donc la pas de prob.
Ensuite le coup du constructeurs ca m'enerve un peu car quand meme je le creait mon tableau dans la classe testTP donc je comprennais pas ... mais bon, tout marche nikel, encore merci a toi ...
:)
Suze
Ah non, tu créais un autre tableau qui n'avait strictement rien à voir ;-)
public class TestTP {
public static void main(String[] args) {
char map2[][] = new char[10][10];
map2.initMap(); // => (ici)
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
d'accord, je viens de comprendre un truc en plus alors ... le fait que j'utilise un constructeur permet de lier mon tableau ainsi creer a la classe ou j'ai mis initMap ?? :)
Encore merci a toi :)
Encore merci a toi :)
C'est pas vraiment ça, un constructeur permet d'initialiser un objet. Et typiquement, initialiser un objet, c'est initialiser les variables que contient l'objet.
Si je devais être plus juste maus moins compréhensible: initialiser un objet, c'est initialiser les objets que contient l'objet.
Un constructeur est simplement une fonction qui ne retourne rien et qui s'execute à la création de l'objet.
Tu saisis?
Je te conseille de lire cette page, ça permet de bien se fixer les idées sur ce qui est en jeu dans l'orienté objet:
http://sebsauvage.net/comprendre/objet/index.html
Si je devais être plus juste maus moins compréhensible: initialiser un objet, c'est initialiser les objets que contient l'objet.
Un constructeur est simplement une fonction qui ne retourne rien et qui s'execute à la création de l'objet.
Tu saisis?
Je te conseille de lire cette page, ça permet de bien se fixer les idées sur ce qui est en jeu dans l'orienté objet:
http://sebsauvage.net/comprendre/objet/index.html