如何在Java中为类成员变量正确实现赋值mutator方法(+ =,/ =等)

时间:2014-08-27 11:40:29

标签: java variable-assignment operator-keyword naming setter

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) - 在可读性方面是直观的。

提前,谢谢你的时间。

0 个答案:

没有答案