Object orientation, or 'OO' was introduced to the world in 1967 in a language known as Simula. Object orientation represents more of a programming philosophy than a particular set of standards, because it has been implemented in many different ways since its conception. The basic premise is to create an environment where every entity is represented as an individual, functioning object, almost as if it had physical representation in the real world. Using OO, you can create 'classes' that define how an object behaves, what it contains, what its capabilities are and so on. Over time object orientation has evolved to support public/private object areas, polymorphism, inheritance and other technical buzzwords. While the concept of object orientation has been with us for a long time, developers continue to debate object oriented principles, thus proving the concept's infancy.
Representing the latest approach to accurately model the real world in computer applications, object orientation is an umbrella concept used to describe a suite of technologies that enable software products that are highly modular and reusable. Applications, data, networks, and computing systems are treated as objects that can be mixed and matched flexibly rather than as components of a system with built-in relationships. As a result, an application need not be tied to a specific system or data to a specific application. The four central object-oriented concepts are encapsulation, message passing, inheritance, and late binding.