Explain communication via messages in object oriented world?

Messages are how objects communicate with one another. Any object may send a message to other objects, and it may receive messages from other objects. In practical programming terms, sending a message is accomplished by invoking or calling some class method, and receiving a message is accomplished by having a class method called by a different object.
A message is sent by a method call as a normal part of the execution of the program logic of an object. However, messages may also originate from the operating system interface or language runtime system. Consider an object that implements a dialog interface with a user. When the user clicks on a button, a message is sent to the dialog object or button handler telling it that a specific button has been pressed.
Consider an interactive program with a graphical user interface(GUI). The parts of a GUI program required to execute in response to some command are controlled by the user interactively. Depending upon which menu item the user selects, or what the user does with the mouse, different parts of the program will be executed. The messages corresponding to a menu pick or mouse click originate with the GUI system, and are sent to the appropriate program objects, which then have the responsibility to respond with some action. The order and timing of these messages is determined by the actions of the user, and not by the control flow of the program.