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: Programming language implementations for context-oriented self-adaptive systemsInfluential work since 2022
- Pick up a classic book: C++The most-reprinted book on the subject
- Read the landmark paper: An object-oriented real-time programming languageCited 66 times
- Go sideways: Inheritance (object-oriented programming)A closely related topic
- Go sideways: Class (programming)A closely related topic
đź“– Definitions
Noun A software-development approach in which the design and implementation of domain-specific languages are integral parts of constructing a software system: developers define linguistic abstractions appropriate to a problem domain, express the system’s behavior in those languages, and provide interpreters, compilers, or translators that implement their meaning.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
An object-oriented real-time programming language
Oriented equational clauses as a programming language
Programming-Language-Oriented Instruction Streams
Organization-based agent-oriented programming: model, mechanisms, and language
MCL — Optimization oriented programming language
An object oriented visual programming language toolkit
Blue—a language for teaching object-oriented programming
I+: A multiparadigm language for object-oriented declarative programming
🆕 Influential since 2022
Programming language implementations for context-oriented self-adaptive systems
Design and Implementation of an Aspect-Oriented C Programming Language
Transformation of C Programming Language Memory Model into Object-Oriented Representation of EO Language
Language Oriented Approach of Teaching Programming Skills
Implementation Draft Programming Oriented Objects in Parking System Application using Language Programming Java
📚 Books worth reading
C++Paul J. Deitel, Harvey M. Deitel · 1996
Learning PerlRandal L. Schwartz, Tom Phoenix · 1993
JavaScriptDavid Flanagan · 1996
Learning PythonMark Lutz, David Ascher · 1999
Objects first with JavaDavid J. Barnes, Michael Kolling · 2002
C how to programHarvey M. Deitel, Paul J. Deitel · 1992
Java how to programPaul J. Deitel, Harvey M. Deitel · 2005
Classical and object-oriented software engineeringStephen R. Schach · 1996
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…