Objects communicate by passing messages containing references to receiving objects and method names. Messages can directly reference objects or use pronouns. Data can be passed by value, reference, or read only. Generic referencing allows messaging without specific references.