Classes: Many objects can be of the same kind that share characteristics such as rectangles, employee records and so on. We can take advantage of the fact that objects of the same kind are similar and you can create a blueprint for those objects. Thus a class is a prototype that defines the variables and the methods common to all objects of a certain kind.
Messages: A single object alone is generally not very useful. Instead, an object usually appears as a component of a larger program or application that contains many other objects. Through the interaction of these objects, programmers achieve higher-order functionality and more complex behavior. Software objects interact and communicate with each other by sending messages to each other. When object A wants object B to perform one of B's methods, object A sends a message to object B.
Messages provide two important benefits. .
• An object's behavior is expressed through its methods, so (aside from direct variable access) message passing supports all possible interactions between objects. .
• Objects don't need to be in the same process or even on the same machine to send and receive messages back and forth to each other. .
Encapsulation, inheritance, polymorphism, data abstraction and modularity are some of the features of the OO paradigm. .
Data Abstraction : users can define types and operations on those types. Abstraction denotes the essential characteristics of an object that distinguish it from all other kinds of objects. An abstraction focuses on the outside view of an object, and so serves to separate an object's essential behavior from its implementation.
Encapsulation : specification and implementation details are separate. The user of a class need not have any implementation about the underlying implementation of the methods of the class. The main idea of encapsulation is to separate what is being done from how it is done An object's data and methods may be declared to be.