Voce tá usando alguma IDE pra programar? Se não, recomendo usar...
Algumas correções:
publicclassCasa{Porta[]portas=newPorta[10];inttotalDePortas=0;voidadicionaPorta(){portas[this.totalDePortas++]=newPorta();}// seu metodo retorna um int? nao... mudei pra void// e como eh um metodo, deve ter parenteses ()voidmetodoBla(){// this.portas nao eh um array de int, o correto seria isso:// (para cada Porta 'i' no array de Porta this.portas)for(Portai:this.portas){System.out.println("Olá");}}}
C
cake
No caso o for percorrerá todo o array ou somente as posições inicializadas?
E
entanglement
Todo o array - ele não checa se uma posição é inicializada ou não.
C
cake
Eu tenho que saber quantos índices eu quero antes de inicializá-los?
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?
marcelo.bellissimo
No caso do array, sim… por isso se usa listas, interface List, é bem mais prático que arrays…
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?
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);
C
cake
Tem como me explicar exatamente como funciona esse enhanced for?
Digo… passo a passo se não for pedir muito… ^^’
marcelo.bellissimo
cake:
Tem como me explicar exatamente como funciona esse enhanced for?
Digo... passo a passo se não for pedir muito.. ^^'
Basta entender a maneira de se "ler" esse tipo de 'for'... a sintaxe é essa:
// dada uma Collection<Object> cList<Object>c=newArrayList<Object>();for(Objecto:c){// faz algo}
O que temos ai em cima, se lê assim:
"Para cada Object, na Collection(lista) de Object's c, crie uma variavel chamada o"
Seria praticamente a mesma coisa se você fizesse isso:
// dada uma Collection<Object> cList<Object>c=newArrayList<Object>();for(inti=0;i<c.size();i++){Objecto=(Object)c.get(i);// faz algo}