PRECISO DE AJUDA! como eu poderia diminuir esse código?

programa principal "

public static void main(String[] args) {


	Funcionario novoFuncionario = new Funcionario();
	novoFuncionario.setNome("Luis");
	novoFuncionario.setSobrenome("Silva");
	novoFuncionario.setHorasTrabalhadas(10);
	novoFuncionario.setValorPorHora(25.50);

	novoFuncionario.nomeCompleto();
	novoFuncionario.calcularSalario();

	novoFuncionario.incrementarHoras(8);
	novoFuncionario.calcularSalario();

	Funcionario [] funcionarios = new Funcionario[9];

	Funcionario funcionario1 = new Funcionario();
	funcionario1.setNome("josé");
	funcionario1.setSobrenome("bezerra");
	funcionario1.setHorasTrabalhadas(5);
	funcionario1.setValorPorHora(16.50);
	funcionarios[0] = funcionario1;

	Funcionario funcionario2 = new Funcionario();
	funcionario2.setNome("Funcionário");
	funcionario2.setSobrenome("2");
	funcionario2.setHorasTrabalhadas(10);
	funcionario2.setValorPorHora(17.50);
	funcionarios[1] = funcionario2;
	
	Funcionario funcionario3 = new Funcionario();
	funcionario3.setNome("Funcionário");
	funcionario3.setSobrenome("3");
	funcionario3.setHorasTrabalhadas(15);
	funcionario3.setValorPorHora(18.50);
	funcionarios[2] = funcionario3;

	Funcionario funcionario4 = new Funcionario();
	funcionario4.setNome("Funcionário");
	funcionario4.setSobrenome("4");
	funcionario4.setHorasTrabalhadas(20);
	funcionario4.setValorPorHora(19.50);
	funcionarios[3] = funcionario4;

	Funcionario funcionario5 = new Funcionario();
	funcionario5.setNome("Funcionário");
	funcionario5.setSobrenome("5");
	funcionario5.setHorasTrabalhadas(25);
	funcionario5.setValorPorHora(20.5);
	funcionarios[4] = funcionario5;

	Funcionario funcionario6 = new Funcionario();
	funcionario6.setNome("Funcionário");
	funcionario6.setSobrenome("6");
	funcionario6.setHorasTrabalhadas(30);
	funcionario6.setValorPorHora(21.5);
	funcionarios[5] = funcionario6;

	Funcionario funcionario7 = new Funcionario();
	funcionario7.setNome("Funcionário");
	funcionario7.setSobrenome("7");
	funcionario7.setHorasTrabalhadas(35);
	funcionario7.setValorPorHora(22.5);
	funcionarios[6] = funcionario7;

	Funcionario funcionario8 = new Funcionario();
	funcionario8.setNome("Funcionário");
	funcionario8.setSobrenome("8");
	funcionario8.setHorasTrabalhadas(40);
	funcionario8.setValorPorHora(23.5);
	funcionarios[7] = funcionario8;

	Funcionario funcionario9 = new Funcionario();
	funcionario9.setNome("Funcionário");
	funcionario9.setSobrenome("9");
	funcionario9.setHorasTrabalhadas(45);
	funcionario9.setValorPorHora(24.50);
	funcionarios[8] = funcionario9;

	for (Funcionario funcionario : funcionarios) {
		funcionario.nomeCompleto();
		funcionario.calcularSalario();
		funcionario.incrementarHoras(10);
		funcionario.calcularSalario();
	}




}

"

classe Funcionario "

private String nome;
private String sobrenome;
private int horasTrabalhadas;
private double valorPorHora;

public Funcionario() {

}

public Funcionario(String nome, String sobrenome) {
	super();
	this.nome = nome;
	this.sobrenome = sobrenome;
}

public void nomeCompleto() {
	System.out.println(nome + " " + sobrenome);
}

public void calcularSalario() {
	double salario = horasTrabalhadas * valorPorHora;
	System.out.println("Salário: R$ " + salario);
}

public void incrementarHoras(int horas) {
	horasTrabalhadas += horas;
}

public String getNome() {
	return nome;
}

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

public String getSobrenome() {
	return sobrenome;
}

public void setSobrenome(String sobrenome) {
	this.sobrenome = sobrenome;
}

public int getHorasTrabalhadas() {
	return horasTrabalhadas;
}

public void setHorasTrabalhadas(int horasTrabalhadas) {
	this.horasTrabalhadas = horasTrabalhadas;
}

public double getValorPorHora() {
	return valorPorHora;
}

public void setValorPorHora(double valorPorHora) {
	this.valorPorHora = valorPorHora;
}

"

Vc pode criar um construtor que receba todas as informações de uma vez:

public Funcionario(String nome, String sobrenome, int horasTrabalhadas, double valorPorHora) {
    super();
    this.nome = nome;
    this.sobrenome = sobrenome;
    this.horasTrabalhadas = horasTrabalhadas;
    this.valorPorHora = valorPorHora;
}

Depois pode criar o array assim:

Funcionario[] funcionarios = {
    new Funcionario("jose", "bezerra", 5, 16.5),
    new Funcionario("Funcionário", "2", 10, 17.5),
    new Funcionario("Funcionário", "3", 15, 18.5),
    new Funcionario("Funcionário", "4", 20, 19.5),
    new Funcionario("Funcionário", "5", 25, 20.5),
    new Funcionario("Funcionário", "6", 30, 21.5),
    new Funcionario("Funcionário", "7", 35, 22.5),
    new Funcionario("Funcionário", "8", 40, 23.5),
    new Funcionario("Funcionário", "9", 45, 24.5)
};

Ou, como do segundo em diante parece ter um padrão, poderia ser:

Funcionario[] funcionarios = new Funcionario[9];
funcionarios[0] = new Funcionario("jose", "bezerra", 5, 16.5);

// do segundo em diante tem um padrão
int horasTrabalhadas = 10;
double valorPorHora = 17.5;
for (int i = 1; i < funcionarios.length; i++) {
    funcionarios[i] = new Funcionario("Funcionário", Integer.toString(i + 1), horasTrabalhadas, valorPorHora);
    horasTrabalhadas += 5;
    valorPorHora += 1.0;
}
1 curtida