For example, in the C language, units of code are called functions , while units of data are called structures . Functions and structures are not formally connected in C. A C function can operate on more than one type of structure, and more than one function can operate on the same structure. This has some big advantages, as you'll see in a moment. For one thing, all communication to it is done via messages . The object which a message is sent to is called the receiver of the message.
Messages define the interface to the object.
Everything an object can do is represented by its message interface. So you shouldn't have to know anything about what is in the black box in order to use it. And not looking inside the object's black box doesn't tempt you to directly modify that object. If you did, you would be tampering with the details of how the object works. Then you would be in trouble.