The distinctive feature of Object-Oriented Programming is (no great surprise) that it represents data and provides functionality through instances of objects. Objects are structures of data, or collections of attributes or properties, that have related functionality (methods) attached to them as well. Objects are constructed as needed from a class, through a definition of the properties and methods that, between them, define what an object is, or has, and what an object can do. An OO approach allows programming challenges to be handled in a significantly different, and usually more useful, manner than the equivalents in a procedural approach, because those object instances keep track of their own data.
The following ...