Esta forma usando o FOR é igual ao do exercicio?
No lugar de declarar " int livre = 0;" o for declara "int i = 0" eu notei que há incrementação também no "livre++" que acho que é a mesma que ocorre no "i++", mas estou em duvida ainda.
void adicionar(Funcionario f){
for (int i=0; i < funcionarios.length; i++){
this.funcionarios[i] = f;
}
}