Java - Consulta matriz

 
Vista:

Consulta matriz

Publicado por Fernando (26 intervenciones) el 26/03/2007 21:48:04
Hola:
Tengo un problema con el siguiente codigo, spero m puedan ayudar.
El objetivo del programa es crear una matriz de Celda, y luego imprimir su contenido.
El codigo es el que sigue:

import java.util.Random;

class Celda{
char tipo;
public void setTipo(char tipo){this.tipo=tipo;}
public char getTipo(){return tipo;}
}

class Prueba{
public static void main (String [] args ){
Random rand=new Random();
int M=rand.nextInt(5) + 5;
int N=rand.nextInt(5) + 5;
//M y N determina el tamaño de la matriz
System.out.println("Los valores son : M = " + M + " N = " + N);
Celda [ ][ ] matriz;
matriz=new Celda [M][];
int i,j;
for (i=0;i<matriz.length;i++)
matriz[i]=new Celda [N];
System.out.println("Memoria Asignada");
System.out.println("Llenando la matriz...");
for (i=0;i<matriz.length;i++){
for (j=0;j<matriz[i].length;j++)
matriz[i][j].setTipo('T');
}
System.out.println("Imprimiendo la matriz...");
for (i=0;i<matriz.length;i++){
for (j=0;j<matriz[i].length;j++)
System.out.print((matriz[i][j]).getTipo() + " ");
System.out.println();
}

}
}
El programa compila normal, pero al momento de correr obtengo lo siguiente:

Exception in thread "main" java.lang.NullPointerException
at Prueba.main(Main.java:25)
Java Result: 1

Por tanto el error esta al momento de acceder a una Celda de la matriz y llamar a su metodo setTipo; pero no entiendo cuál es el error.
Si alguien pudiera ayudarme se lo agradecería mucho.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta matriz

Publicado por Danilo Juvinao (278 intervenciones) el 27/03/2007 01:03:32
No veo en ningun lado el constructor de la clase Celda, tienes sus metodos y todo pero te faltaria el constructor.

Tu estas creando cada campo de la matriz con un objeto. cuando vayas a insertar en cada posicion debes instanciar el objeto con su constructor que tambien debes crearlo en la clase celda.

en celda por ejemplo debe ir

public Celda(){
}

y al momento de establecer el tipo deberia ser

matriz[i][j] = new Celda();
matriz[i][j].setTipo('T');

El codigo podria mejorarse pero te lo dejo asi para no complicartela.

Exitos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar