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

Obter o valor do salario com o método get

Olá, boa tarde! No exercício em questão, que é para mostrar o funcionario e seu respectivo salario, a resposta está como: void mostraEmpregados() { for (int i = 0; i < this.livre; i++) { System.out.println("Funcionário na posição: " + i); System.out.println("R$" + this.empregados[i].salario); } Não poderia obter o salario dos empregados através do seguinte trecho de código: for (int i =0; i<this.empregados.length; i++){ System.out.println ("Funcionario nº" +(i+1) +"\nSeu salário: "+empregados[i].getSalario()); }

Além disso, como que ficaria a resposta usando a estrutura do foreach(ou enhanced for)?

Desde já agradeço a atenção e aguardo a resposta!

2 respostas
solução!

Oi Marcos, você duplicou seu post sem querer. Estou colocando aqui um link para o outro tópico e fechando este, ok?

https://cursos.alura.com.br/forum/topico-obter-o-valor-do-salario-com-o-metodo-get-25995

Abraço!

Olá, Marcos!

Se o método getSalario() tiver sido criado na classe Funcionario, poderia ser dessa forma sim.

Com foreach ficaria da seguinte forma:

int i = 0;
for (Funcionario f : this.empregados) {
    System.out.println(
        "Funcionario nº " + (++i) + "\nSeu salario: " f.getSalario()
    );
}

Mas há alguns pontos para se atentar.

Caso haja posições não preenchidas no array, este foreach resultará em um erro, pois ele percorrerá todas as posições reservadas do array.

Assim como a forma sugerida por você (utilizando .length ao invés de livre) também resultaria no mesmo erro.

Espero ter ajudado.

Abraços e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software