3
respostas

Dúvida simples

Olá amigos na funçao " registra" o professor faz da seguinte maneira:

public void registra (Gerente g){
double boni = g.getBonificacao();
this.soma +=boni;
}

No parametros dessa função, eu entendi que " registra" possui como primeiro parâmetro uma referencia a classe Gerente ( que no exemplo da aula é o "g1") porém qual a utilidade daquela variável "g"? É necessário mesmo a criação dela para fazer essa função simples ?

A minha maior dificuldade em Java está sendo essas variáveis que parecem ser aleatórias.

3 respostas

Olá Edmilson, tudo bem?

A variável "g" é usada como um parâmetro para o método "registra". Ela é uma referência a uma instância da classe "Gerente". O objetivo desse parâmetro é permitir que o método "registra" tenha acesso aos dados e comportamentos de uma instância específica da classe "Gerente".

Ao passar uma instância da classe "Gerente" como um parâmetro para o método "registra" é possível acessar seus atributos, como a propriedade "bonificacao", e fazer cálculos com ela. Isso permite que o método "registra" seja reutilizado com instâncias diferentes da classe "Gerente".

Ou seja, a variável "g" é uma variável necessária para que o método "registra" possa acessar e trabalhar com os dados de uma instância específica da classe "Gerente".

Boa noite meu amigo Eu to quase entendendo kk Eu entendi que é a letra "g" é uma referencia a uma instancia da classe gerente. Eu só não estou conseguindo entender a qual instancia específica essa letra "g" faz referencia. Não teria que especificar isso na hora de definir o parametro, exemplo:

public void registra (Gerente g.getBonificacao) // ou referenciar outro atributo da classe gerente?

A classe Gerente é uma classe filha da " Funcionario" correto ? No casso a letra "g" faz referencia aos atributos ( todos ou um espeificamente) dessa classe também? Java é para quebrar a cabeça com essas referencias kkk

Sim, você está correto. A letra "g" é uma referência a uma instância da classe Gerente. Ao passar um objeto Gerente como parâmetro para o método "registra", você pode acessar todos os atributos e métodos desse objeto. A classe Gerente é uma subclasse da classe Funcionário, então ela herda todos os atributos e métodos da classe Funcionário. Portanto, se você tiver uma instância da classe Gerente, você pode acessar todos os atributos e métodos da classe Funcionário e também todos os atributos e métodos específicos da classe Gerente. Ao passar um objeto Gerente como parâmetro para o método "registra", você não precisa especificar qual atributo ou método você está acessando, pois você já tem uma referência completa ao objeto Gerente. Por exemplo, a linha double boni = g.getBonificacao(); acessa o método getBonificacao da classe Gerente, e a linha this.soma += boni; atualiza o valor da variável soma com o valor retornado pelo método getBonificacao.