Repetição de código [resolvido]

Criei 2 classes

funcionario.java

[code]package tecn.org.br;

public class Funcionario {

private String nome;
private String cargo;
private double salario;

public String getNome() {
	return nome;
}
public void setNome(String name) {
	nome = name;
}
public String getCargo() {
	return cargo;
}
public void setCargo(String cargo) {
	this.cargo = cargo;
}
public double getSalario() {
	return salario;
}
public void setSalario(double salario) {
	this.salario = salario;
}

}[/code]

Principal.java

[code]public class Principal {

public static void main(String args[]) {
	
	Scanner input = new Scanner( System.in ); 
	
	Funcionario f1 = new Funcionario();
	Funcionario f2 = new Funcionario();
	Funcionario f3 = new Funcionario();
	System.out.print("Informe o nome do primeiro funcionario 1: ");
	String name = input.nextLine();
	f1.setNome(name);
	System.out.print("Informe o cargo do funcionario 1: ");
	name = input.nextLine();
	f1.setCargo(name);
	System.out.print("Informe o salário do funcionario 1: ");
	double salario = input.nextDouble();
	f1.setSalario(salario);
	
	System.out.print("Informe o nome do primeiro funcionario 2: ");
	name = input.nextLine();
	f2.setNome(name);
	System.out.print("Informe o cargo do funcionario 2: ");
	name = input.nextLine();
	f2.setCargo(name);
	System.out.print("Informe o salário do funcionario 1: ");
	salario = input.nextDouble();
	f2.setSalario(salario);
	
	System.out.print("Informe o nome do primeiro funcionario 3: ");
	name = input.nextLine();
	f3.setNome(name);
	System.out.print("Informe o cargo do funcionario 3: ");
	name = input.nextLine();
	f3.setCargo(name);
	System.out.print("Informe o salário do funcionario 3: ");
	salario = input.nextDouble();
	f3.setSalario(salario);
	
	System.out.println(f1.getNome());
	System.out.println(f1.getCargo());
	System.out.println(f1.getSalario());
}

}[/code]

como vocês podem observar há uma grande repetição de código, qual a melhor maneira de se fazer esse tipo de código?

Faça um vetor de objeto (funcionário) e depois use a estrutura for para percorrer seu vetor.

:thumbup:

Não resisto a uma refatoração :

public class Principal {
	public static void main(String args[]) {
		Funcionario [] funcionarios = new Funcionario[3];
		
		for (int i = 0; i < funcionarios.length; i++) {
			Funcionario f = new Funcionario();
			preencheFuncionario(i, f);
		}
		
		for (Funcionario f : funcionarios) {
			printFuncionario(f);
		}
	}

	private static void preencheFuncionario(int i, Funcionario f) {
		Scanner input = new Scanner( System.in ); 
		System.out.print("Informe o nome do funcionario " + i + ": ");
		String name = input.nextLine();
		f.setNome(name);
		
		System.out.print("Informe o cargo do funcionario " + i + ": ");
		String cargo = input.nextLine();
		f.setCargo(cargo);
		
		System.out.print("Informe o salário do funcionario " + i + ": ");
		double salario = input.nextDouble();
		f.setSalario(salario);
	}
	
	private static void printFuncionario(Funcionario f) {
		System.out.println(f.getNome());
		System.out.println(f.getCargo());
		System.out.println(f.getSalario());
	}
}