Iniciando um vetor

8 respostas
P

void adicionaPorta(Portas p) { Portas[] portas = new Portas[p]; for (int i = 0; i < this.portas.length; i++) { this.portas[i].situacao = true; } }

Ola novamente para todos, desculpe o transtorno novamente.

olha soh estou com um problema aqui que nao encontrei a resposta de forma alguma, acredito que eu, novamente claro, fiz algo que fugiu do padrao.

eh o seguinte, preciso iniciar o vetor a partir desse metodo.
la em cima na class ele esta declarado como Portas[] portas; e existe um arquivos Portas.class

Gostaria de iniciar esse vetor pois como nos vemosdesse modo ele nao inicia. tentei colocar int p mas ele nao aceita a variavel p dentro das chaves.

ate agora nao entendi o que fazer :S

preciso que o vetor inicie com o numero que derem entrada para ele iniciar, alguem me ajuda? :smiley:

obrigado.

8 Respostas

lcegatti

O correto seria:

void adicionaPorta(Portas p) {
        portas = new Portas[p];      
        for (int i = 0; i < this.portas.length; i++) {
            this.portas[i].situacao = true;
        }
    }

Pois nesse caso vc está usando o portas que está declarado na sua classe, anteriormente vc instanciava um novo objeto portas que era acessível apenas dentro de seu método.

Ve se resolve…

[]'s

Bravox

Para inciar o array , vc precisa utilizar um valor inteiro, lembre que o array possui posições e armazena algo dependo do seu tipo.

Abaixo segue uma versão que vc pode utilizar como exemplo:

public class Guj {

	static void adicionaPorta(Portas[] portas) {            
      for (int i = 0; i < portas.length; i++) {   
          portas[i].situacao = true;   
      }   
  }  

	
	public static void main(String[] args) {
		
		Portas[] portas = new Portas[2];
		
		portas[0] = new Portas();
		portas[1] = new Portas();		
		
		adicionaPorta(portas);
	}
}

Lembre-se , se o objeto passado como parametro for null ou não houver elemento em alguma possição do array, uma Exception do tipo java.lang.NullPointerException será lançada, para evitar isso é necessário fazer umas validações, ficando ai como exercício.

Qualquer coisa estamos ai !

P

Ice, seu cod da erro
ele diz que achou “Portas”
mas que precisa de int.
e se vc jogar int elediz que nao pode u.u

algum outra ideia pessoal ?

P

bravox, mas seu cod nao vai estipular 3 campos vetorias ?

eu preciso que seja inserido, por isso que gostaria iniciar ele apos a instrucao
sacou ?

Bravox

pedrolima88:
bravox, mas seu cod nao vai estipular 3 campos vetorias ?

Não ! perceba que o método recebe um Array não importanto o seu tamanho.

pedrolima88:

eu preciso que seja inserido, por isso que gostaria iniciar ele apos a instrucao
sacou ?

Vamo Lá.

Olhando com calma, parece que vc quer receber um objeto Porta e add ele no array, e depois interar com esse array para setar o campo situacao do objeto , é isso ? a lógica do seu método está um pouco confusa !

P

eh mais ou menos isso,
vou lhe mostrar o que eh necessario ser feito

Crie três portas e coloque-as na casa através do método adicionaPorta, abra
e feche-as como desejar.

criar ok
adcionar pelo adiciona porta pendente
abra , ela ja entra como true que estou considerando aberta

a unica opcao pendete eh o adiciona porta que o objeto porta eh array :S

e ai alguma ideia pessoal ?

Bravox

Então ! para isso o seu array deve estar inicializado.

Existe muitas formas de fazer o que vc quer, entáo vai uma :

public class Casa {

	// como o numero de porta é fixo
	// podemos iniciar o array 
	// para ser dinâmico uma dica é vc pesquisar
	// por java collection
	static Porta[] portas = new Porta[3];
	
	 static void adicionaPorta(Porta p) {  
		 
		for (int i = 0; i < portas.length; i++) {
		
			if ( portas[i] == null) {
				
				portas[i] = p;
			}
		}
	 }
	 
}
P

opa !
valeu grande :smiley:

eh que no final das contas eu queria fazer a mais para ver se aprendia mais do que o exercicio pedia sabe?
ai acabei me embolando,
vou testar desse modo que voce postou ai.
Desde ja um muito obrigado a todo que lerem e ajudaram!

valeu!

Criado 10 de outubro de 2008
Ultima resposta 10 de out. de 2008
Respostas 8
Participantes 3