Problema com Array

2 respostas
pardim7

Opa Boa tarde, então pessoal eu estava lendo a Apostila da caelum e fazendo os exercicios lá, dai ok, até que chega um exercicio pra verificar se o ARRAY está vazio. Bem acho que o código verifica até ok. O problema é que ele guarda no mesmo bloco, independente de quantos funcionarios eu crio. Como eu faço pra cada ficar guardado em um bloco? Por exemplo f1 no [0], f2 no [1] e f3 no[2]?

public class Empresa {

	String cnpj;
	String local;
	
	Funcionario[] empregados;
	
	
	void adiciona(Funcionario a){
	      int i = 0;
		if(this.empregados[i] == null  && this.empregados.length == 0){
		   		this.empregados[i] = a;
			
		}else{
			i++;
			this.empregados[i] = a;
			
		}
	}
public class TestaEmpresa {

	public static void main(String[] args) {
		Empresa empresa = new Empresa();
		empresa.empregados = new Funcionario[10];
		
		
		
		Funcionario f1 = new Funcionario();
		f1.salario = 1000;
      
		empresa.adiciona(f1);
		
		Funcionario f2 = new Funcionario();
		
        empresa.adiciona(f2);
        f2.salario = 2000;
		empresa.mostraEmpregados();
	
	    Funcionario f3 = new Funcionario();
	    f3.salario = 3405;
	    empresa.adiciona(f3);

	    
		empresa.adiciona(f3);
		
		System.out.println(empresa.empregados[1].salario);
	}

}

2 Respostas

ErickRAR

Você está zerando i, somando 1 e adicionando na posição i. Sempre que você vai adicionar, ele zera o contador.

Essa váriavel i deve ser uma variavel statica.,assim será igual para todas as instancias.
public class Empresa {  
  static int posicao=0;


 
    void adiciona(Funcionario a){ 
  // logica para adicionar/incrementar a posição.
}
}
pardim7

Opa, rodou aqui. Obrigado.

Criado 16 de novembro de 2013
Ultima resposta 17 de nov. de 2013
Respostas 2
Participantes 2