With OOP, a developer can define unique variables (data types) of data structures. Within these data structures a developer can define the functions or methods that can be applied specifically to it. The construct that encapsulates the set of variables and functions is known as a class. A class merely has a logical existence, and acts as a universal blueprint from which an instance can be created. An instance of a class is known as an object. An object will have a physical existence and is essentially a variable of the programmer defined class type which is used for actual functionality.