Object Oriented Programming

From Wikipedia

HomePage | Recent changes | View source | Page history | Log in |

Printable version | Disclaimers | Privacy policy

Object Oriented Programming (OOP) is a software design methodology, in which related functions and data are lumped together into "objects", convenient metaphors, often mirroring real world things or concepts.

Some computer languages are inherently Object Oriented, such as Smalltalk, Java and Python, while others are a hybrid of OOP and otherwise, such as Perl and C++.


In terms of OOP languages I would say that there is a broad gradiation of the OOPishness of languages, ranging from Smalltalk, self and Ruby, in which literally everything in the language is an object, to languages such as Java and Python that are quite OOPish but also include primitive data types, to languages like Perl and C++, which are pre-OOP languages that have added some OOP features. And, of course, there are languages like C and assembler that aren't OOPish at all. That being said, OOP is more of a design philosophy than an attribute of a particular language, though the attributes of particular languages make OOP dramatically more easy or hard. But in theory you could do OOP in FORTRAN, or procedural programming in Smalltalk. In reality, of course, the languages and tools that you use shape what you produce.

OOP could be defined in terms of what it isn't, which is procedural programming.

Object Orientation is typically considered to consist of the following properties:

Of course, those descriptions make a lot of assumptions that should be elaborated, which is why people write books about OOP. For example, the underlying goals of OOP are to increase software reliability and maintainability, and to make large software projects more manageable.

Also, OOP approaches to development tend to emphasise the complete development and runtime environment, not just the syntax of the language. Most OO languages are associated with:

Of course, some or all of the above can be applied without necessarily using OOP, or an OOP language. I have seem good IDE's for coding straight C, and iterative development, without any OOP aspects all, for example.

/Talk

Retrieved from "http://nostalgia.wikipedia.org/wiki/Object_Oriented_Programming"

This page was last modified on 15 January 2005, at 04:44. Text is available under the Creative Commons Attribution/Share-Alike License; additional terms may apply. See Terms of Use for details.