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

necessidade do método mostraeEmpregados();

Qual a necessidade do método mostraEmpregados() (classe Empresa)? Ele faz exatamente o que método mostra()Funcionario) faz. É uma questão de boa prática ter métodos para cada classe ainda que eles provoquem o mesmo resultado?


  void mostra() {
    System.out.println("Nome: " + this.nome);
    System.out.println("RG: " + this.RG);
    System.out.println("Funcao: " + this.funcao);
    System.out.println("Departamento: " + this.departamento);
    System.out.println("Salario: " + this.salario);
    System.out.println("Dia: " + this.dataEntrada.dia);
    System.out.println("Mes: " + this.dataEntrada.mes);
    System.out.println("Ano: " + this.dataEntrada.ano);
  }
7 respostas

Oi Geovane,

A ideia do mostraEmpregados() é justamente mostrar todos os empregados. Se você tem uma empresa com 100 funcionários, seria muito trabalhoso fazer algo do tipo

empresa.empregados[0].mostra();
...
empresa.empregados[99].mostra();

O que você pode fazer dentro de mostraEmpregados() é justamente um for que usa o método mostra() de cada funcionário.

Sim, mas eu fiz isso:

    for(int i = 0; i < 5; i++) {
      empresa.empregados[i].mostra();
    }

Dá na mesma ou tô deixando algo passar?

Você diz fora da classe Empresa? Na questão de funcionamento do programa, de fato é a mesma coisa. Entretanto é uma boa prática deixar esse laço num método da classe pois você evita repetir código. Se você tem vários objetos da classe Empresa, você não precisa escrever esse laço mais de uma vez.

Esse laço está na classe TesteEmpresa com o método main. Ou sejam, fora da classe empresa.

Tem a mesma funcionalidade sim. Mas esse código não é reaproveitável, isto é, deverá ser escrito novamente para outra empresa.

Hum, vou pensar um pouco. Não entendi ainda o porquê que ele não pode ser reaproveitado. Valeu.

solução!

Se você tem a empresa alura com 7 empregados e a empresa caelum com 13 empregados, no seu programa e quer ver os empregados de cada uma, você pode:

for(int i = 0; i < 7; i++) {
    alura.empregados[i].mostra();
}
for(int i = 0; i < 13; i++) {
    caelum.empregados[i].mostra();
}

Ou, se você tivesse o método dentro da classe:

alura.mostraEmpregados();
caelum.mostraEmpregados();

Veja que você também não precisa se preocupar com o tamanho da empresa no segundo caso, pois ele já está sendo tratado dentro da classe.