::Object-oriented programming


Language::first    Class::title    Object::objects    Computer::which    Object::author    Pattern::classes

{{#invoke:redirect hatnote|redirect}} {{#invoke:redirect hatnote|redirect}} {{#invoke:Sidebar|sidebar}}

Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which are data structures that contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods. A distinguishing feature of objects is that an object's procedures can access and often modify the data fields of the object with which they are associated (objects have a notion of "this" or "self"). In OO programming, computer programs are designed by making them out of objects that interact with one another.<ref>{{#invoke:Citation/CS1|citation |CitationClass=journal }}</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=book }}, section 1.6 "Object-Oriented Programming"</ref> There is significant diversity in object-oriented programming, but most popular languages are class-based, meaning that objects are instances of classes, which typically also determines their type.

Many of the most widely used programming languages are multi-paradigm programming languages that support object-oriented programming to a greater or lesser degree, typically in combination with imperative, procedural programming. Significant object-oriented languages include Python, C++, Objective-C, Smalltalk, Delphi, Java, Swift, C#, Perl, Ruby and PHP.

Object-oriented programming sections
Intro  Features  History  OOP languages  Design patterns  Criticism  Formal semantics  See also  References  Further reading  External links  

PREVIOUS: IntroNEXT: Features