Object-based programming is a programming paradigm that supports objects and thus the principle of data encapsulation. Unlike object-oriented programming, object-based programming does not support inheritance
. Object-based programming supports abstractions (only) by creating objects that communicate with each other through messages and execute methods. This provides manipulations of the state of the objects. Class definitions specify exactly the construction descriptions of all objects in a class, i.e., all their attributes, whose value assignments determine their state, and the behavior of the objects in the class.