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

Exercício 2.Aula4

Não entendi bem o método usado para adicionar funcionários. O objetivo era usar uma função que aciona objetos da classe Funcionario, que é array de Empresa:

Fiz o seguinte:

void adicionar(){
        for(int i=0;i<funcionario.length;i++){

            if(funcionario[i]==null){ 
            funcionario[i] = new Funcionario();
            break;
            }

        }

Dá pra perceber que minha função não recebe argumentos

O gabarito apresentou outra função, que sequer entendi.:



class Empresa {
    Funcionario[] empregados;
    String cnpj;
    int livre = 0;

    void adiciona(Funcionario f) { // O que é esse f?
        this.empregados[this.livre] = f;
        this.livre++;
    }
}
2 respostas

Imagina como é no mundo real. As empresas não criam seus funcionários, mas eles vêm de algum lugar. Criar classes e seus métodos mais próximos da realidade é a sacada da orientação à objetos.

solução!

Olá Lucas! Vamos voltar um pouco nos conceitos de orientação a objetos. O método adiciona da classe Empresa recebe como parâmetro um objeto do tipo Funcionário, que no exercício acima é nomeado como 'f'. O método adiciona recebe esse funcionário e o coloca na posição livre da classe Empresa, ou seja, posição 0 que foi definido na classe. O funcionário 'f' é adicionado no array de Funcionários denominado de empregados da classe Empresa. O método também incrementa a variável de posição livre. Espero poder ajudar.