ola pessoa resolvi fazer um exercicio em java mais nao entendi pq esta dano erro na classe TesCasa, ta dizendo
Exception in thread "main" java.lang.NullPointerException
at TestCasa.main(TestCasa.java:12)
só que eu fiz um array de tamanho 3 e nao sei o motivo do erro sei q se eu mudar a logica vai dar certo mais eu quero saber o motivo do erro
o codigo das Classes são esses
public class Porta {
private String cor;
boolean aberta;
float dimensaoX;
float dimensaoY;
float dimensaoZ;
public void abre()
{
this.aberta = true;
}
public void fecha()
{
this.aberta = false;
}
public void pinta(String s)
{
this.cor = s;
}
public boolean estaAberta()
{
if(aberta)
{
System.out.println("A porta esta aberta");
return true;
}
else
{
System.out.println("A porta esta fechada");
return false;
}
}
}
public class Casa {
String cor;
int totalDePortas;
Porta[] portas;
public int totalDeportas()
{
totalDePortas = this.portas.length;
return this.totalDePortas;
}
public void adicionaPorta(Porta p)
{
for(int i=0;i<portas.length;i++)
{
if(this.portas[i] ==null)
{
this.portas[i] = p;
break;
}
}
}
public void pinta(String s)
{
this.cor = s;
}
public int quantasPortasEstaoAberta()
{
int contadorDePortas = 0;
for(int i=0; i < this.portas.length; i++)
{
if(this.portas[i].aberta==true)
contadorDePortas++;
}
return contadorDePortas;
}
}
public class TestCasa
{
public static void main(String args[])
{
Casa casa = new Casa();
casa.portas = new Porta[3];
casa.pinta("branca");
casa.portas[0].dimensaoX = 1.00f;
casa.portas[0].dimensaoY = 2.00f;
casa.portas[0].dimensaoZ = 0.06f;
casa.portas[0].abre();
casa.portas[0].pinta("verde");
casa.portas[1].dimensaoX = 1.00f;
casa.portas[1].dimensaoY = 2.00f;
casa.portas[1].dimensaoZ = 0.06f;
casa.portas[1].abre();
casa.portas[1].pinta("verde");
casa.portas[2].dimensaoX = 1.00f;
casa.portas[2].dimensaoY = 2.00f;
casa.portas[2].dimensaoZ = 0.06f;
casa.portas[2].fecha();
casa.portas[2].pinta("verde");
casa.adicionaPorta(casa.portas[0]);
casa.adicionaPorta(casa.portas[1]);
casa.adicionaPorta(casa.portas[2]);
System.out.println(casa.totalDeportas());
System.out.println(casa.quantasPortasEstaoAberta());
}
}