Problema com Array

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]?

[code]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;
		
	}
} [/code]

[code]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);
}

}
[/code]

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.

[code]public class Empresa {
static int posicao=0;

void adiciona(Funcionario a){ 

// logica para adicionar/incrementar a posição.
}
}[/code]

Opa, rodou aqui. Obrigado.