好奇心问题。
你能找到任何理由将对象作为自己方法的参数显式传递吗? e.g。
someObject.someMethod(someObject);
提前致谢。
答案 0 :(得分:3)
SquareMatrix3
。这可能有一个执行矩阵乘法的方法multiply
。将3x3矩阵与3x3矩阵相乘得到3x3矩阵。因此,签名看起来像
public class SquareMatrix3 {
// returns the result of multiplying this with other, as a new matrix
public SquareMatrix3 multiply(SquareMatrix3 other) { ... }
}
如果你想计算某些SquareMatrix3 mat
的平方,你可以调用SquareMatrix3 matSquared = mat.multiply(mat);
这当然只是一个例子,肯定还有很多其他例子。
答案 1 :(得分:2)
是。考虑一种方法来“添加”或将某些对象连接到您的对象。在这种情况下,它返回结果。
public Foo add(Foo other);
您可能想要自己添加或连接自己,在那里打电话
Foo result = this.add(this)
答案 2 :(得分:1)
当然有理由这样做。被调用的方法可能适用于该类的任何实例,无论是this
还是其他实例。例如,编写一个Set
类的方法是一种很好的方法,可以测试该集合是否是其自身的成员。
public class <T> FunkySet implements Set<T> {
public boolean isMemberOfSelf() {
return contains(this);
}
. . .
}