Q:

Passing object reference as itself to own method explicitly

Question out of curiosity.
Can you find any reason to pass object as parameter of its own method explicitly?
e.g.
someObject.someMethod(someObject);

Thanks in advance.

A:

Uhm, sure. Just consider a class for matrices (say, of fixed size - 3x3 or so), lets call it SquareMatrix3. This might have a method multiply that performs matrix multiplication. Multiplying a 3x3 matrix with a 3x3 matrix yields a 3x3 matrix. Hence, the signature would look like
public class SquareMatrix3 {
  // returns the result of multiplying this with other, as a new matrix
  public SquareMatrix3 multiply(SquareMatrix3 other) { ... }
}

and if you want to calculate the square of some SquareMatrix3 mat, you invoke SquareMatrix3 matSquared = mat.multiply(mat);
This, of course, is just one example, there for sure are many others.

A:

Yes.  Consider a method to "add" or concatenate some object to yours.  In this case it returns the result.
public Foo add(Foo other);

You might want to add or concatenate yourself to yourself, where you'd call
Foo result = this.add(this)

