Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Metodo Construtor - exercicio 2

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

    void adiciona(Funcionario f) {
        this.empregados[this.livre] = f;
        this.livre++;
    };

    void mostraEmpregados() {
         for (int idx = 0; idx < this.livre; idx++) {
              System.out.println("Funcionário na posição: " + idx);
//            System.out.println("idFuncionario: "  + this.empregados[idx].idFuncionario);                         
//            System.out.println("departamento : "  + this.empregados[idx].departamento);                        
//            System.out.println("nome         : "  + this.empregados[idx].nome);
//            System.out.println("cpf          : "  + this.empregados[idx].cpf);  
//            System.out.println("Salario R$" + this.empregados[idx].salario);              
              System.out.println("idFuncionario: "  + this.empregados[idx].getIdFuncionario());                         
              System.out.println("departamento : "  + this.empregados[idx].getDepartamento());                        
              System.out.println("nome         : "  + this.empregados[idx].getNome());
              System.out.println("cpf          : "  + this.empregados[idx].getCpf());              

              System.out.println("Salario R$" + this.empregados[idx].getSalario());

            };
    };
    void mostraTodasAsInformacoes() {
         for (int i = 0; i < this.livre; i++) {
              System.out.println("Funcionário na posição: " + i);
              this.empregados[i].mostra();
        };
    };  

    boolean contem(Funcionario f) {
            for (int i = 0; i < this.livre; i++) {
                if (f == this.empregados[i]) {
                    return true;
                }
            }
            return false;
        } 

    public String getNome() {
        return this.nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getCnpj() {
        return this.cnpj;
    }

    public void setCnpj(String cnpj) {
        this.cnpj = cnpj;
    }
    public Funcionario getFuncionario (int posicao) {
        return this.empregados[posicao];
    }       
};

não entendi como fazer "Na classe Empresa, em vez de criar um array de tamanho fixo, receba como parâmetro no construtor o tamanho do array de Funcionario."

1 resposta
solução!

tu vai criar um construtor pra classe empresa que vai receber como parâmetro o tamanho do array do funcionário

public Empresa(int empregados) {
    this.empregados = new Funcionario[empregados];
}

depois lá no main quando tu for criar tua empresa tu vai passar um valor que vai ser o tamanho do teu array

ex: empresa com 5 funcionários

Empresa empresa = new Empresa(5);