Object-oriented programming is a method of designing programs that groups together data using objects. Each object is part of a class which serves as a blueprint for defining the object. The idea of objects is modelled from objects in real life, so for example, we could have a class named 'vehicle' and objects within this class could be 'car', 'bus' and 'bike'. All of these objects share variables such as 'wheels' but may have different data for these variables e.g. a bike has two wheels and a car has four.