Java不支持运算符重载,所以当我想要plus_equals [+ =]这样的两个对象时:
// pseudo : a += b ;
在Java中我必须写:
a . set ( a . add ( b ) ) ;
可以用一种方法包装,以更接近地模仿“+ =”运算符的语法来获取:
a . add_equals ( b ) ;
当我尝试对类成员变量执行相同操作时:
// pseudo : a.x += a.x ;
a . setX ( add ( a.getX() , b.getX() ) ) ;
我遇到了一个问题 - 吸气剂和二传手阻碍了。 我要么必须直接访问添加的augend(a.x),这意味着我必须将其公开...
a . getX ( ) . add_equals ( b . getX() ) ;
或者我必须做一个有点令人困惑的看起来变异的方法
a . setX_add_equals ( b.getX() ) ;
这个问题是否有一个优雅的解决方案:
(1) - 不会干扰成员变量的访问修饰符。
(2) - 在可读性方面是直观的。
提前,谢谢你的时间。