Exercicio simples - apanando com recriacao de array

Pessoal,

Estou fazendo o exercicio da Caelum, FJ11-5.8 segue abaixo:

Programa 1
Classe: Casa
Atributos: cor, totalDePortas, portas[]
Método: void pinta(String s), int quantasPortasEstaoAbertas(), void
adicionaPorta(Porta p), int totalDePortas()
Crie uma casa, pinte ela. Crie três portas e coloque-as na casa através do
método adicionaPorta, abra e feche as mesmas 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.

O metodo pinta eu fiz e funciona… mas nao consigo criar uma lógica (e mao na massa) para o metodo adicionaPorta… a ideia, acho, é criar um array e ir adicionando porta… e quando estourar… recriar outro maior com os dados da outra…

como fazer isso utilizando array…

segue meu pobre codigo de aprendizado…

[code]

class Casa {

String cor;

void pinta (String novacor) {
System.out.println("Cor Atual da Casa: " + this.cor);
this.cor = novacor;
System.out.println("Cor Nova da Casa: " + this.cor);
}


void adicionaPorta (int numeroDePortas) {

boolean[] portas = new boolean[numeroDePortas];

			for (Boolean i : portas) {
			System.out.println(i);
			}
		
}


void mostraPortas (){


}

}

class TestaCasa {

public static void main (String[] args) {

Casa casa = new Casa();
casa.cor = "Azul";

casa.pinta("Amarelo");

casa.adicionaPorta(3);

}

}[/code]