Java - Consulta clases abstractas

 
Vista:

Consulta clases abstractas

Publicado por Fernando (26 intervenciones) el 28/03/2007 23:37:03
Holas!! tengo un problema cuando intento correr este codigo:

public void imprimeDatos(){
int i=0;
if (this.saco.saco_artefactos.isEmpty())
System.out.println("No hay artefactos en el saco");
else
while (!this.saco.saco_artefactos.isEmpty()){
Artefacto art= (Artefacto)(this.saco.saco_artefactos.get(i));
System.out.print("("+i+") "+art.nombre+" ("+(++i)+") "+art.nombre+" ("+(++i)+") "+art.nombre);
System.out.println();
}

}

este metodo pertenece a una clase Avatar q se define de la siguiente m,anera:

class Avatar extends Entidad{
Armadura armadura_actual;
Arma arma_actual;

public Avatar(String nombre){
super();
this.nombre=nombre;
this.vida_actual=this.max_vida=100;//este valor puede cambiar
this.armadura_actual= new Armadura(1);
this.arma_actual= new Arma(1);
//siguen otros métodos, incluido el mostrado anteriormente

La clase Entidad es la siguiente:
abstract class Entidad{
int posx;
int posy;
int max_vida;
int vida_actual;
String nombre;
Saco saco;
public Entidad(){
this.saco=new Saco();
}

Y la clase Saco es la siguiente:
class Saco{
ArrayList saco_artefactos;
public Saco(){
ArrayList saco_artefactos= new ArrayList();
}
}

La clase Artefacto es la sgte:
abstract class Artefacto {
String nombre;

public Artefacto() {
}
}

El problema es q al correr el programa, se da una excepcion de NullPointer en la línea de ImprimeDatos:
if (this.saco.saco_artefactos.isEmpty())

No se a q se debe ese error. Les agradecería que me ayudaran.
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 clases abstractas

Publicado por Oscar (78 intervenciones) el 29/03/2007 03:17:58
Hola,

El problema es que no estas inicializando la variable de clase saco_artefactos. En el constructor de Saco estas creando otra variable que se llama saco_artefactos y esa es la que estas inicializando.

Debe ser asi:
class Saco{
ArrayList saco_artefactos;
public Saco(){
saco_artefactos= new ArrayList();
}
}

Saludos
OScar
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