Ayuda con error de novato en Java
Publicado por Mario (1 intervención) el 17/10/2006 23:59:21
He hecho este programa en Java pero me da un error en el metodo estadoEdificio cuando ejecuto un programa que usa la clase EdificioInteligente. El error que me sale es un java.lang.NullPointerException, sin embargo si pongo las mismas instrucciones en el constructor de la clase no da fallo. ¿Me podeis ayudar con el error?
Un saludo y gracias
public class EdificioInteligente {
//Crea los ordenadores y las luces que tendra el edificio
private Ordenador ordenadores[];
private int numeroLuces; int numeroPCs;
private Luces luces[];
EdificioInteligente(int numeroLuces, int numeroPCs) {
Luces luces[]= new Luces[numeroLuces];
Ordenador ordenadores[]= new Ordenador[numeroPCs];
for (int i=0; i<=numeroLuces-1 ;i=i+1){
luces[i]= new Luces();
luces[i].tipo("Normal");
}
luces[0].tipo("Emergencia"); //Considero que en la posicion 0 esta la de Emergencia
for (int i=0; i<=numeroPCs-1 ;i=i+1){
ordenadores[i]= new Ordenador();
}
this.numeroLuces= luces.length;
this.numeroPCs= ordenadores.length;
}
void estadoEdificio(){ //No Funciona, da fallo al acceder a luces[i], pero desde el constructor si se puede acceder ¿?
for (int i=0; i<=numeroLuces-1 ;i=i+1){
//System.out.println(numeroLuces);
//System.out.println(luces[0].estado());
System.out.println("Luz numero " +i +" " +luces[i].estado()); <------ Error aqui
}
for (int i=0; i<=numeroPCs-1 ;i=i+1){
System.out.println("Ordenador numero " +i + " " +ordenadores[i].estadoMonitor());
}
}
}
Un saludo y gracias
public class EdificioInteligente {
//Crea los ordenadores y las luces que tendra el edificio
private Ordenador ordenadores[];
private int numeroLuces; int numeroPCs;
private Luces luces[];
EdificioInteligente(int numeroLuces, int numeroPCs) {
Luces luces[]= new Luces[numeroLuces];
Ordenador ordenadores[]= new Ordenador[numeroPCs];
for (int i=0; i<=numeroLuces-1 ;i=i+1){
luces[i]= new Luces();
luces[i].tipo("Normal");
}
luces[0].tipo("Emergencia"); //Considero que en la posicion 0 esta la de Emergencia
for (int i=0; i<=numeroPCs-1 ;i=i+1){
ordenadores[i]= new Ordenador();
}
this.numeroLuces= luces.length;
this.numeroPCs= ordenadores.length;
}
void estadoEdificio(){ //No Funciona, da fallo al acceder a luces[i], pero desde el constructor si se puede acceder ¿?
for (int i=0; i<=numeroLuces-1 ;i=i+1){
//System.out.println(numeroLuces);
//System.out.println(luces[0].estado());
System.out.println("Luz numero " +i +" " +luces[i].estado()); <------ Error aqui
}
for (int i=0; i<=numeroPCs-1 ;i=i+1){
System.out.println("Ordenador numero " +i + " " +ordenadores[i].estadoMonitor());
}
}
}
Valora esta pregunta


0