Téléchargement
illégal
Posez votre question Signaler

[JAVA]Probleme initialisation d'une matrice

Suze - Dernière réponse le 17 janv. 2008 à 18:28
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
Lire la suite 

[JAVA]Probleme initialisation d'une matrice »

7 réponses
Réponse
+0
moins plus
Personne ne peut m'aider ...? :(
Ajouter un commentaire
Réponse
+0
moins plus
Il faut que tu initialises ton tableau dans un constructeur:

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.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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)
}
Ajouter un commentaire
Réponse
+0
moins plus
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 :)
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Tres bonne page, merci beaucoup a toi ;)
Ajouter un commentaire
Ce document intitulé « [JAVA]Probleme initialisation d'une matrice » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?