Let's consider this simple equation that computes the area of a rectangle.

The inputs are "width" and "height".

The function output is the calculated area (i.e. "width * height").
function computeArea(width, height)

	return width * height
The Java method corresponding to the above function is show here, and is not much different than that original function.
public int computeArea(int width, int height) {

	return width * height;
}
This is very similar to our our functions discovery.

The message is sent by the caller with the values of 10 and 2.

This method receives those values and calculates the result and returns it to the caller.
zzzzzzzzzzzzzzzzzzzzzzzzzzzz10yyyyyyyyyy2
public int computeArea(int width, int height) {

wwwwwwwwwwwwwwww10vvvvvvv2
        return width * height;
}
This method is general purpose and can be called with an effectively unlimited number of different values.

This time a message is sent by the caller with the values of 5 and 3.

This method receives those values and calculates the result and returns it to the caller.
zzzzzzzzzzzzzzzzzzzzzzzzzzzz5yyyyyyyyyy3
public int computeArea(int width, int height) {

wwwwwwwwwwwwwwww5vvvvvvv3
        return width * height;
}