<programming> (OOP) The use of a class of programming languages and techniques based on the concept of an "object
" which is a data structure (abstract data type
) encapsulated with a set of routines, called "methods
", which operate on the data.
Operations on the data can _only_ be performed via these methods, which are common to all objects that are instances of a particular "class
Thus the interface to objects is well defined, and allows the code implementing the methods to be changed so long as the interface remains the same.
Each class is a separate module
and has a position in a "class hierarchy
Methods or code in one class can be passed down the hierarchy to a subclass
or inherited from a superclass
This is called "inheritance
call is described as invoking a method on an object (which effectively becomes the procedure's first argument
), and may optionally include other arguments.
The method name is looked up in the object's class to find out how to perform that operation on the given object.
If the method is not defined for the object's class, it is looked for in its superclass and so on up the class hierarchy until it is found or there is no higher superclass.
OOP started with SIMULA-67 around 1970 and became all-pervasive with the advent of C++
, and later Java
. Another popular object-oriented programming language (OOPL) is Smalltalk
, a seminal example from Xerox's Palo Alto Research Center
Others include Ada
, Object Pascal
, Objective C
, and Python
Other languages, such as Perl
, permit, but do not enforce OOP.
FAQ (http://iamwww.unibe.ch/~scg/OOinfo/FAQ/). (http://zgdv.igd.fhg.de/papers/se/oop/). (http://cuiwww.unige.ch/Chloe/OOinfo).