A type of programming in which programmers define not only the data type of a data structure, but also the types of operations (functions) that can be applied to the data structure. In this way, the data structure becomes an object that includes both data and functions. In addition, programmers can create relationships between one object and another. For example, objects can inherit characteristics from other objects. C++ and Java are both object-oriented languages. To the top
(computer science) a programming language that enables the programmer to associate a set of procedures with each type of data structure; "C++ is an object-oriented programming language that is an extension of C"
An OOPL is a 3GL with a number of unique OO features (e.g., classes and relationships) superimposed. Most OOPLs are actually hybrids; 3GLs with a few 4GL features. Some, such a Smalltalk, do a good job of hiding some 3GL features such as procedural message passing; others, such as C++, are are thin veneers over 3GL paradigms. (See category on what OO is all about.)