Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida no Ex. 2 da Aula 4 - Arrays

Galera boa tarde tenho uma duvida sobre arrays

class Empresa {

    String nome;
    String cnpj;
    String ramo;
    Funcionario[] empregados = new Funcionario[200]    ;



    void addFuncionario(Funcionario funcionario){
        for(int i = 0; i< empregados.length; i++){
            this.empregados[i] =  new Funcionario();
        }

    }
}

Esse método está armazenando um funcionário em qualquer posição livre do array? Qual seria o método correto para armazenar um funcionário em uma posição livre do array?

4 respostas

Oi Orion,

Esse seu código tem um bug. O for está correto, mas vc só pode armazenar o Funcionario na posição i, se essa posição estiver vazia.

Para isso, vc precisa comparar a posição com null. Entendeu?

Na verdade eu não consegui entender a lógica por trás disso, pensei que esse código acrescentasse um novo espaço no vetor de funcionário. No caso da resposta do exercício:

void addFuncionario(Funcionario func){ this.empregados[this.qtdFunc] = func; this.qtdFunc++; }

Eu não deveria declarar o tamanho do vetor?

Orion,

Vc precisa declarar o tamanho do vetor no momento da sua criação. E o código faz isso em algum lugar (procure pelo new).

Depois, pra inserir, vc precisa de um contador, pois a primeira posição vazia é a 0, depois 1, e assim por diante.

Entendeu?

solução!

Olha como ficou o meu:

class Empresa {
    String nome;
    Funcionario[] empregados = new Funcionario[10];
    String cnpj;

    void adiciona(Funcionario f) {
        for(int i=0; 0 < this.empregados.length; i++) {
            if (this.empregados[i]==null){
                this.empregados[i] = f;
            }
        }
    }           
}