Under Construction

In the 1980's Object-oriented programming (OOP) became popular, with languages like C++, Objective-C & Smalltalk. Java and C# are also Object-oriented languages.

A object-oriented program is a collection of interacting objects, which can be viewed as independent "machines" with a distinct role or responsibility.
In programming languages an object is the composition of data - nouns (attributes that describe an object such as numbers, strings, or variables) and methods - verbs (like actions, such as functions/procedures).

An object oriented program may be viewed as a collection of interacting objects, as opposed to the conventional model, in which a program is seen as a list of tasks (subroutines) to perform. In OOP, each object is capable of receiving messages, processing data, and sending messages to other objects. Each object can be viewed as an independent "machine" with a distinct role or responsibility.

A computer language is object-oriented if they support the four specific object properties called abstraction, polymorphism, inheritance, and encapsulation.


Objects consist of Methods and Data

The only thing that an object knows about another object is the object's interface.
Each object's data and logic is hidden from other objects.
In other words, the interface encapsulates the object's code and data.

A class is the blueprint from which individual objects are created.
In the example below the class vehicles has a subclass Bikes which in turn
  has a subclass bicycles.
  Each class inherits commonly used state and behavior from it's superclass
Data Abstraction - A superclass is an abstraction of the lower class.

Polymorphism - A circle and cylinder share the same properties Color and Radius and Methods getRadius and GetColor Terms: Class - Defines the characteristics of the Object. Object - An Instance of a Class. Property - An Object characteristic, such as color. Method - An Object capability, such as walk. Constructor - A method called at the moment of instantiation. Inheritance - A Class can inherit characteristics from another Class. Encapsulation - A Class defines only the characteristics of the Object, a method defines only how the method executes. Information Hiding - Abstraction - The conjunction of complex inheritance, methods, properties of an Object must be able to simulate a reality model. Polymorphism - Different Classes might define the same method or property. Allows values of different data types to be handled using a uniform interface.

JavaScript: There are discussions as to whether JavaScript is an OOP.
Just because a language has objectes doesn't make an OOP.
Does JavaScript have the 4 properties listed above? At Is JavaScript object-oriented? - Stack Overflow, AnthonyWJones says JavaScript does provide a fairly easy means to inherit implementation via prototyping but this is at the expense of encapsulation.
At Object-oriented Programming | Eloquent JavaScript, they say JavaScript has a rather eccentric take on OOP.
So it seems JavaScript is not strictly an OOP.

Links:
Object-oriented programming - Wikipedia
Python Tutorial: Object Oriented Programming
Lesson: Object-Oriented Programming Concepts (The JavaŠ Tutorials > Learning the Java Language) | oracle.com

last updated 19 Nov 2013