Object Oriented Programming (OOP) is a programming paradigm in which software is split conceptually into individual units or objects that behave individually. Four key attributes are found in object oriented languages: encapsulation, modularity, polymorphism, and inheritance.