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.
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


0