1
respuesta

[Duda] duda en la clase creada Control bonificacion

hola, tengo una duda que n eh podido comprender, en esta formula que da el maestro, no entiendo la interpretacion de que es lo que va a hacer o mas bien de donde saca las sumas.

  1. private double suma;

  2. public double registrarSalario(Funcionario funcionario) {

  3.     this.suma =funcionario.getBonificacion() + this.suma;              
    
  4.   System.out.println("calculo actual " + this.suma);
    
  5.   return this.suma; 		
    

    }

  6. en esta linea entiendo que crea de forma privada una variable double llamada suma

  7.   en esta linea entiendo que retornara un vaor double referenciando a funcionario
    
  8.   en esta linea, que esta suma es igual a obtener la bonificacion del usuario mas esa misma suma, entonces es ahi donde no entiendo porque creo que ahi el obtiene el valor de la bonificacion pero con que lo sumara, con el mismo valor otra vez de la bonificacion ya que es el valor de this suma? es lo que no entiendo, me perdi ahi,
    
1 respuesta

Hola Michael,

Sí, voy explicarte.

La línea 3, por ejemplo, this.suma = funcionario.getBonificacion() + this.suma; está sumando la bonificación del funcionario al valor actual de suma. Aquí, funcionario.getBonificacion() es la bonificación del funcionario que se está procesando en ese momento y this.suma es la suma total de las bonificaciones de los funcionarios procesados hasta ahora.

Para entenderlo mejor, veamos un ejemplo práctico. Supongamos que tienes tres funcionarios: Funcionario A con una bonificación de 100, Funcionario B con una bonificación de 200 y Funcionario C con una bonificación de 300.

  1. Cuando procesas al Funcionario A, funcionario.getBonificacion() es 100 y this.suma es 0 (ya que no has procesado a ningún funcionario antes). Por lo tanto, this.suma = funcionario.getBonificacion() + this.suma; se convierte en this.suma = 100 + 0;, por lo que this.suma se convierte en 100.

  2. A continuación, procesas al Funcionario B. Ahora, funcionario.getBonificacion() es 200 y this.suma es 100 (la suma total de las bonificaciones de los funcionarios procesados hasta ahora). Por lo tanto, this.suma = funcionario.getBonificacion() + this.suma; se convierte en this.suma = 200 + 100;, por lo que this.suma se convierte en 300.

  3. Finalmente, procesas al Funcionario C. Ahora, funcionario.getBonificacion() es 300 y this.suma es 300. Por lo tanto, this.suma = funcionario.getBonificacion() + this.suma; se convierte en this.suma = 300 + 300;, por lo que this.suma se convierte en 600.

Por lo tanto, al final de procesar a todos los funcionarios, this.suma es la suma total de todas las bonificaciones, que en este caso es 600.

Espero que esto aclare tu duda. Recuerda, this.suma es la suma acumulada de las bonificaciones hasta el momento y funcionario.getBonificacion() es la bonificación del funcionario que se está procesando en ese momento.

Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios