An instruction from one object (the sender) to another object (the receiver) to execute one of the receiver's methods. The three parts of a message are defined by the receiver object name, the method name, and any parameters the method may require. Messages can also be two-way, which occurs when the receiver object's method returns a value to the sender.