What makes a program Object Oriented?
There seem to be many different views on what constitutes Object Oriented (OO) programming.
Part of the reason may result from experience that different programmers have, and more specifically, the language that they predominantly use. Not all computer languages are equal when it comes to their OO capabilities.
Object oriented programming has, to some extent been around since at least the 1960s. But it was probably the introduction of Smalltalk in the 1970s that led to something approaching a formal definition of 00.
Since then a number of languages have embraced the OO concept to a greater or lesser extent.
What does seem to be widely accepted is that there are four pillars upon which Object Orientation stands. They are:
You can follow the links to find out more about these terms.
The other area of contention is what exactly is an Object. I wrote about this a while ago in an article on my blog, but a more general description can be found here.
I am careful not to confuse excellence with perfection. Excellence, I can reach for; perfection is God's business.