Object-oriented programming
A computing programming model that models a system as a collection of objects, of which each object represents a particular part of the system1. Generally involves the use of classes and objects.
Object-oriented programming has four main concepts: - encapsulation; - inheritance; - abstract classes and instances; and - polymorphism