Exercício do Deitel

Srs, boa noite, preciso da ajuda de vcs. Fiz o exercício 4,20 do Deitel mas quero que a cada iteração ele peça para o usuário digitar o nome do usuário, só que ele não faz. Alguém poderia me ajudar ? Grande abraço. segue abaixo o exercício:

/* 4.20 - Desenvolva um aplicativo Java que determine o salário bruto de cada um dos três empregados. A empresa paga

  • “hora normal” pelas primeiras 40 horas trabalhadas por cada funcionário e 50% a mais para todas as horas trabalha
  • das além de 40 horas. Você recebe uma lista dos empregados da empresa, o número de horas trabalhadas por empregado
  • na última semana e o salário-hora de cada empregado. Se programa deve aceitar a entrada dessas informações para
  • cada empregado e então determinar e exibir o salário bruto do empregado. Utilize a classe Scanner para inserir os
  • dados.
    */

[code]import java.util.Scanner;

/**

  • @author paulo
    */
    public class Funcionario
    {

    Scanner entrada = new Scanner(System.in);

    private String nomeFunc1;
    private double horaTrab = 0;
    private double salHora = 0;

    public Funcionario(String nome1, String nome2, String nome3, double horat, double salh)
    {
    nomeFunc1 = nome1;
    horaTrab = horat;
    salHora = salh;
    }

    public void setNomeFunc1(String nome1)
    {
    nomeFunc1 = nome1;
    }

    public String getNomeFunc1()
    {
    return nomeFunc1;
    }

    public void setHoraTrab(double horat)
    {
    horaTrab = horat;
    }

    public double getHoraTrab()
    {

      return horaTrab;
    

    }

    public void setSalHora(double salh)
    {
    salHora = salh;
    }

    public double getSalHora()
    {
    return salHora;
    }

    public double getTotal()
    {
    double total = 0;

      if(horaTrab > 40)
    
         salHora = salHora * 1.50;
     
     total = horaTrab * salHora;
    
     return total;
    

    }

    public void getDemonstrativo()
    {

     System.out.printf("Digite o nome do funcionário: ",nomeFunc1);
     nomeFunc1 = entrada.nextLine();
    
     System.out.printf("Digite as horas trabalhadas do funcionario: \n",horaTrab);
     horaTrab = entrada.nextDouble();
    
     System.out.printf("Digite o salário hora do funcionário: \n",salHora);
     salHora = entrada.nextDouble();
    
     System.out.printf("Total a receber: R$ %.2f\n\n", getTotal());
    
     while(horaTrab != -1)
     {
     
     System.out.printf("Digite o nome de outro funcionário: ");
     nomeFunc1 = entrada.nextLine();
    
     System.out.printf("\nDigite as horas trabalhadas do funcionario: \n",horaTrab);
     horaTrab = entrada.nextDouble();
    
     System.out.printf("Digite o salário hora do funcionário: \n",salHora);
     salHora = entrada.nextDouble();
    
     System.out.printf("Total a receber: R$ %.2f\n\n", getTotal());
     //double total = entrada.nextDouble();
    
     }
    

    }

}
[/code]

/**
 *
 * @author paulo
 */
public class FuncionarioTest
{
    
    public static void main(String args [])
    {
        Funcionario func1 = new Funcionario("","","",0.0,0.0);
       
        func1.getDemonstrativo();
       
    }
}

Tinha do while do getDemonstrativo da classe Funcionario, e coloca um while na classe main:

public class FuncionarioTest  
 {  
       
     public static void main(String args [])  
     {  
         Scanner entrada = new Scanner(System.in);
         String x = "S";
         while (x.equals("S")) {
         Funcionario func1 = new Funcionario("","","",0.0,0.0);
         func1.getDemonstrativo();
         System.out.println("Mais um funcionário?(S/N)");  
         x = entrada.nextLine();
         }          
    }  
}