Boa tarde, estou iniciando em java e tenho esta questão :
O objetivo dos exercícios a seguir é fixar os conceitos vistos. Se você está com dificuldade em alguma parte desse capítulo, aproveite e treine tudo o que vimos até agora no pequeno programa abaixo:
Programa:Classe: Casa Atributos: cor, totalDePortas, portas[] Métodos: void pinta(String s), int quantasPortasEstaoAbertas(), void adicionaPorta(Porta p), int totalDePortas()
Crie uma casa, pinte-a. Crie três portas e coloque-as na casa através do método adicionaPorta, abra e feche-as como desejar. Utilize o método quantasPortasEstaoAbertas para imprimir o número de portas abertas e o método totalDePortas para imprimir o total de portas em sua casa.
Este e meu código:
public class Casa {
String cor;
int totalDePortas;
Porta [] porta = new Porta[10];
Porta portas = new Porta();
void pinta (String s){
this.cor = s;
System.out.println("A cor da casa é : "+this.cor);
}
int totalDePortas(){
int cont=0;
for(int i = 0; i<=this.porta.length-1;i++){
if(this.porta[i]!=null){
cont++;
this.totalDePortas=cont;
}
}
System.out.println("numero de portas : "+this.totalDePortas);
return this.totalDePortas;
}
int quantasPortasEstaoAbertas(){
int cont=0;
for(int i = 1 ;i<= this.porta.length-1;i++){
if(this.porta[i].estadoDaporta==true){
cont++;
}
}
System.out.println("Total de portas Abertas : "+cont);
return cont;
}
void adicionaPorta(Porta p){
for( int i = 0 ;i<= porta.length;i++){
if(porta[i]==null){
porta[i]=p;
break;
}
}
public class testeMain {
public static void main(String[] args) {
Porta p1 = new Porta();
Porta p2 = new Porta();
Porta p3 = new Porta();
Casa casa = new Casa();
casa.adicionaPorta(p1);
casa.adicionaPorta(p2);
casa.adicionaPorta(p3);
p1.estadoDaporta=true;
p2.estadoDaporta=false;
p3.estadoDaporta=true;
casa.totalDePortas();
casa.pinta("azul");
casa.quantasPortasEstaoAbertas();
}
}
public class Porta {
boolean estadoDaporta;
}
porem , o método quantasPortasEstaoAbertas() esta dando o seguinte erro:
saída do programa :
numero de portas : 3
A cor da casa é : azul
Exception in thread “main” java.lang.NullPointerException
at br.caellum.ferreira.exArrayOO.Casa.quantasPortasEstaoAbertas(Casa.java:38)
at br.caellum.ferreira.exArrayOO.testeMain.main(testeMain.java:34)
C:\Users\Me\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)
alguém sabe me dizer o pq ?