Olá pessoas,
Estou no início do aprendizado java e me deparei com um problema que não consigo resolver. É o exercício 5.8 da apostila FJ-11 (Caelum). Tentei de tudo e não consegui fazer funcionar. Vejam o meu código e se puderem me corrigir, por favor… Agradeceria.
1. O objetivo dos exercícios a seguir é fixar os conceitos vistos até agora. 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.
Eu não entendi esse termo “portas[]”. Trata-se de um array simples de boolean, ou seria um array da classe Porta? O que consegui até agora foi o seguinte.
[code]class Casa {
String cor = "Neutra";
int totalDePortas = 0;
Porta[] minhasPortas;
void pinta(String s) {
this.cor = s;
}
int quantasPortasEstaoAbertas() {
int contadorDePortasAbertas = 0;
for(int i = 0; i < minhasPortas.length; i++) {
if(minhasPortas[i].aberta = true) {
contadorDePortasAbertas += 1;
} else {
contadorDePortasAbertas += 0;
}
}
return contadorDePortasAbertas;
}
void adicionaPorta(Porta p) {
for(int i = 0; i < minhasPortas.length; i++) {
if(minhasPortas[i] == null) {
minhasPortas[i] = p;
break;
}
}
}
int totalDePortas() {
for(int i = 0; i < minhasPortas.length; i++) {
if(minhasPortas[i] != null) {
totalDePortas += 1;
}
}
return totalDePortas;
}
}
class Porta {
boolean aberta = false;
}
class TestaCasa {
public static void main(String[] args) {
Casa minhaCasa = new Casa();
minhasPortas = new Porta[5];
minhasPortas[0] = new Porta();
minhasPortas[1] = new Porta();
minhasPortas[2] = new Porta();
minhasPortas[3] = new Porta();
minhasPortas[4] = new Porta();
adicionaPorta(0);
adicionaPorta(1);
adicionaPorta(2);
adicionaPorta(3);
adicionaPorta(4);
minhaCasa.minhasPortas[0].aberta = true;
minhaCasa.pinta("Ouro");
System.out.println(minhaCasa.cor);
System.out.println(minhaCasa.minhaPorta[0].aberta);
}
}[/code]