Voce tá usando alguma IDE pra programar? Se não, recomendo usar…
Algumas correções:
[code]public class Casa
{
Porta[] portas = new Porta[10];
int totalDePortas = 0;
void adicionaPorta()
{
portas[this.totalDePortas++] = new Porta();
}
// seu metodo retorna um int? nao… mudei pra void
// e como eh um metodo, deve ter parenteses ()
void metodoBla()
{
// this.portas nao eh um array de int, o correto seria isso:
// (para cada Porta ‘i’ no array de Porta this.portas)
for(Porta i : this.portas)
{
System.out.println(“Olá”);
}
}
}[/code]
[code]public class Casa {
Porta[] portas = new Porta[10];
int totalDePortas = 0;
public Casa(){
metodoBla();
}
void adicionaPorta() {
portas[this.totalDePortas++] = new Porta();
}
void metodoBla() {
portas[0] = new Porta();
portas[3] = new Porta();
portas[6] = new Porta();
for (Porta i : this.portas) {
System.out.println(i);
}
}
public static void main(String[] args) {
new Casa();
}
Eu tenho q reservar essas 10 portas antes de saber de quantas portas eu vou precisar?
Não tem como ir reservando à medida q for sendo preciso inicializá-las?
No caso do array, sim… por isso se usa listas, interface List, é bem mais prático que arrays…
[quote=cake]Eu tenho q reservar essas 10 portas antes de saber de quantas portas eu vou precisar?
Não tem como ir reservando à medida q for sendo preciso inicializá-las?[/quote]
Infelizmente arrays não te dão a opção de alocação dinâmica… ele começa e termina com um tamanho fixo… use listas, elas são a sua salvação!
// crie a lista
List<Porta> portas = new ArrayList<Porta>();
// adicione novos objetos Porta, dessa maneira:
portas.add(new Porta());
//ou dessa:
Porta porta = new Porta();
portas.add(porta);