Hola luis sanz!
A continuación dejo el siguiente código el cual contiene algunos ejemplos de las ventajas y uso de los operadores de asignación compuesta, también e incluido algunos comentarios de clase, que podrían ser útiles.
/**
* Ejemplo de uso de operadores de asignación compuesta (+= y -=).
*
* @author J.lopez
*/
public class OperadorCompuesto
{
// Declaración de dos variables de tipo primitivo int
private int primerValor;
private int segundoValor;
/**
* Constructor general
*/
public OperadorCompuesto()
{
// Inicializamos las variables primerValor y segundoValor con un valor inicial de 2 y 3 respectivamente, para una mejor comprensión en este ejemplo
primerValor = 2;
segundoValor = 3;
}
//Metodos setters
public void setPrimerValor(int valor)
{
primerValor = valor;
}
public void setSegundoValor(int valor)
{
segundoValor = valor;
}
// Getters
public int getPrimerValor()
{
return primerValor;
}
public int getSegundoValor()
{
return segundoValor;
}
// A continuación, dos métodos que no usan operadores de asignación compuesta y devuelven un resultado
/*
Aquí en principio el compilador "no analiza" el valor contenido en la variable segundoValor, sino que trata a esta como un espacio de memoria donde sera
almacenado el resultado de la operación matemática: segundoValor + primerValor (3 + 2) donde si analiza el valor de cada variable.
Es como decirle a un niño, busca esa caja verde y luego que la busques, destapa esa caja verde que tiene juguetes y esa otra caja amarilla que también tiene
juguetes y junta todos esos juguetes en la caja verde
*/
public int sumaNormal()
{
segundoValor = segundoValor + primerValor;
return segundoValor;
}
public int restaNormal()
{
segundoValor = segundoValor - primerValor;
return segundoValor;
}
// A continuación, dos métodos que si usan operadores de asignación compuesta y devuelven el mismo resultado que los dos métodos mas arriba
/*
Aquí la ventaja es que tenemos menos código y obtenemos el mismo resultado. El compilar analiza el valor de la variable segundoValor lo suma al valor
de la variable primerValor y asigna el resultado como el nuevo valor de la variable segundoValor.
Es como decirle a un niño: busca esa caja verde y esa otra caja amarilla y junta todos los juguetes que tengan en la caja verde. Suena mas facil verdad?
*/
public int sumaCompuesta()
{
segundoValor += primerValor;
return segundoValor;
}
public int restaCompuesta()
{
segundoValor -= primerValor;
return segundoValor;
}
}
Cualquier duda, no dudes en preguntar..
Saludos!