eaí cara, sussa, não precisa ter vergonha não 
quanto à tua duvida, vou tentar explicar de forma bem simples:
Quando você instanciar o objeto dessa classe e usar o método registra(funcionario), você deve passar um objeto funcionario pra esse método, claro. 
O funcionário que você passar para o método pode ser um funcionário que já tenha sido criado, por exemplo:
ControleDeBonificacoes cdb = new ControleDeBonificacoes();
Funcionario funcionario1 = new Funcionario();
funcionario1.setBonificacao(500);
cdb.registra(funcionario1);
mas você também pode passar um novo funcionario para o método:
ControleDeBonificacoes cdb = new ControleDeBonificacoes();
cdb.registra(new Funcionario());
Mas você quer saber se você estará criando um novo objeto. Pois é… não. Fazendo o que está sendo mostrado no primeiro exemplo você só estará passando o funcionario1, que já está criado, para o método executar alguma ação. Na assinatura do método, quando você escreve registra(Funcionario funcionario) significa que este método, toda vez que for usado, deve receber um objeto do tipo Funcionario, e dentro do método, esse objeto recebido será trabalhado com o “nome” de funcionario.
No caso do número é a mesma coisa, se você tivesse a seguinte situação:
public void registra(int numero) {
//...
}
e em outra classe executasse esse método, da seguinte forma:
ControleDeBonificacoes cdb = new ControleDeBonificacoes();
cdb.registra(10);
você estaria dizendo que naquele momento, o valor da sua variável numero (que está dentro do método) é 10 - mas somente naquele momento. se num próximo momento você chamar novamente esse método e passar o número 20 como argumento, a sua variável numero terá o valor 20 para aquela execução do método.
No entanto, você não poderia criar o método registra(Funcionario funcionario) e instanciá-lo passando cdb.registra(10) - pois o método esperava um objeto do tipo Funcionario, e recebeu um do tipo primitivo int.