uso una setters programacion orientada objetos metodos incluya getters español ejemplo crear con como clase java operators int setter operation

java - una - setter y getter c++



Por qué no es posible incrementar y luego pasar el valor en el método set por++ (3)

El operador de incremento requiere un campo o variable. La evaluación de getId() no da como resultado un campo de identificación; devuelve una copia del valor getId() devuelve (por "copia" quiero decir una copia literal para tipos primitivos y una nueva referencia para tipos de referencia). getId() podría implementarse como return id; internamente, pero no obtiene el id campo, solo una copia de su valor.

El equivalente más cercano sería int i = getId(); setId( getId() + 1 ); return i; int i = getId(); setId( getId() + 1 ); return i; , pero estás pidiendo mucho para que getId()++ como azúcar sintáctico para tal expresión.

Tengo una línea de código que funciona así,

mrq.setId((mrq.getId()+1));

Pero, cuando intenté escribirlo así,

mrq.setId((mrq.getId()++));

No funciona, el error es, Invalid argument ot the operation ++/--

¿Cuál es la razón técnica detrás de esto?


++ operador se usa para incrementar el valor de la variable en 1. por lo que a++ se trata como a=a+1 . Eso significa que el operando en el que se usa será donde se realizará la asignación.

Cuando escribe mrq.getId()++ no le proporciona una variable de operando que puede incrementar y, por lo tanto, esto no funciona.


x++ es esencialmente equivalente a x = x + 1 , lo que no tiene sentido en su caso:

mrq.getId() = mrq.getId() + 1