class Porta {
boolean aberta;
String cor;
double altura, largura;
Porta(boolean aberta, String cor, double altura, double largura) {
this.aberta = aberta;
this.cor = cor;
this.altura = altura;
this.largura = largura;
}
void abre() {
this.aberta = true;
}
void fecha() {
this.aberta = false;
}
void pinta(String novaCor) {
this.cor = novaCor;
}
boolean estaAberta() {
return this.aberta;
}
}
class Edificio { String cor; int totalDeAndares; Porta portas[]; int totalDePortas;
Edificio(String cor, int totalDeAndares, int totalDePortas) {
this.cor = cor;
this.totalDeAndares = totalDeAndares;
this.totalDePortas = totalDePortas;
this.portas = new Porta[totalDePortas];
}
int quantasPortasEstaoAbertas() {
int q = 0;
for (int i = 0; i < this.totalDePortas; i++) {
if(portas[i].estaAberta()) {
q++;
}
}
return q;
}
void adcionaPorta(Porta p) {// p é a porta que eu quero adicionar
for (int i = 0; i < this.totalDePortas; i++) {
if (portas[i] == null) { // Vai varrer e procurar uma posição que esteja vazia.
portas[i] = p; // parâmetro passado
}
break; // para o for pq ele já achou uma posição vazia
}
}
}
class Principal {
public static void main(String[] args) {
Porta p1 = new Porta(false, "branca", 1.5, 1.9);
Porta p2 = new Porta(true, "branca", 1.5, 1.9);
Porta p3 = new Porta(true, "branca", 1.5, 1.9);
Edificio e1 = new Edificio("Azul", 10, 10);
Edificio e2 = new Edificio("Azul", 10, 10);
e1.adcionaPorta(p1);
e2.adcionaPorta(p2);
e1.adcionaPorta(p3);
System.out.println(e1.quantasPortasEstaoAbertas());
System.out.println(e2.totalDePortas);
}
}