Object-oriented programming is a programming paradigm using objects: an encapsulation consisting of data fields and methods together with their interactions.