Everything about Object-oriented programming
Programming paradigm based on objects
Object-oriented programming (OOP) is a programming paradigm based on objects – software entities that encapsulate data and function(s). An OOP computer program consists of objects that interact with one another. An OOP language is one that provides object-oriented programming features, but as the set of features that contribute to OOP is contested, classifying a language as OOP – and the degree to which it supports OOP – is debatable. As paradigms are not mutually exclusive, a language can be multi-paradigm. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Object-oriented programmingA 5-minute orientation
- Skim a recent paper: Choral: Object-oriented Choreographic ProgrammingInfluential work since 2022
- Pick up a classic book: C++The most-reprinted book on the subject
- Read the landmark paper: Concurrent object-oriented programmingCited 199 times
- Go sideways: Inheritance (object-oriented programming)A closely related topic
- Go sideways: Class (programming)A closely related topic
📖 Definitions
Noun A programming paradigm that uses hierarchies of objects, instantiated from templates called classes, to design applications and computer programs.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Concurrent object-oriented programming
What is object-oriented programming?
Object oriented programming
Systematic concurrent object-oriented programming
Object-oriented programming with flavors
Object-Oriented Design and Programming
Object-oriented robot programming
Object-Oriented Programming, Functional Programming and R
🆕 Influential since 2022
Choral: Object-oriented Choreographic Programming
Learning Object-Oriented Programming Concepts Through Visual Analogies
Block-Based Object-Oriented Programming
Bidirectional Object-Oriented Programming: Towards Programmatic and Direct Manipulation of Objects
Pre-implementation Method Name Prediction for Object-oriented Programming
📚 Books worth reading
C++Paul J. Deitel, Harvey M. Deitel · 1996
JavaScriptDavid Flanagan · 1996
Learning PythonMark Lutz, David Ascher · 1999
Objects first with JavaDavid J. Barnes, Michael Kolling · 2002
Java how to programPaul J. Deitel, Harvey M. Deitel · 2005
Classical and object-oriented software engineeringStephen R. Schach · 1996
Java how to program--early objectsPaul J. Deitel, Harvey M. Deitel · 2011
Java how to program--late objects versionPaul J. Deitel, Harvey M. Deitel · 2009
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Inheritance (object-oriented programming) In object-oriented programming, inheritance is the mechanism of basing an object or class upon another object (prototype-based inheritance) or class (class-base…
- Class (programming) In programming, a class is a syntactic entity structure used to create objects. The capabilities of a class differ between programming languages, but generally…
- Polymorphism (computer science) In programming language theory and type theory, polymorphism allows a value or variable to have more than one type and allows a given operation to be performed…
- Encapsulation (computer programming) In software systems, encapsulation refers to the bundling of data with the mechanisms or methods that operate on the data. It may also refer to the limiting…
- Subtyping In programming language theory, subtyping (also called subtype polymorphism or inclusion polymorphism) is a form of type polymorphism. A subtype is a datatype…
- Index of object-oriented programming articles This is a list of terms found in object-oriented programming. Abstract class Accessibility Abstract method Abstraction (computer science) Access control…
- Prototype-based programming Prototype-based programming is a style of object-oriented programming in which behavior reuse (known as inheritance) is performed via a process of reusing…
- Programming paradigm A programming paradigm is a relatively high-level way to conceptualize and structure the implementation of a computer program. A programming language can…