Oop Glossary

Browse 92 oop terms defined in plain English, from the cultural dictionary of computing.

92 Oop Terms

Abstract Class
Abstract Class is a software design or object-modeling concept that shapes how code is organized. It is commonly used for maintainable application architecture...
Abstract Factory Pattern
Abstract Factory Pattern is a software design or object-modeling concept that shapes how code is organized. It is commonly used for maintainable application...
Abstract Method
Abstract Method is a software design or object-modeling concept that shapes how code is organized. It is commonly used for maintainable application...
Adapter
Adapter is a software design or object-modeling concept that shapes how code is organized. It is commonly used for maintainable application architecture and...
Adapter Pattern Detail
Adapter Pattern Detail is a software design or object-modeling concept that shapes how code is organized. It is commonly used for maintainable application...
Aggregate Root
Aggregate Root is a software design or object-modeling concept that shapes how code is organized. It is commonly used for maintainable application architecture...
Base Class
Base Class is a software design or object-modeling concept that shapes how code is organized. It is commonly used for maintainable application architecture and...
Builder Pattern
A creational design pattern that constructs complex objects step by step through a fluent API, separating construction from representation. Especially useful...
C++
An extension of C that adds object-oriented programming, templates, and a vast standard library while maintaining low-level hardware control. C++ dominates...
Class
A blueprint for creating objects that encapsulates data (fields/properties) and behavior (methods) into a single unit. Classes are the fundamental building...
Class Diagram
Class Diagram is a software design or object-modeling concept that shapes how code is organized. It is commonly used for maintainable application architecture...
Class Hierarchy
Class Hierarchy is a software design or object-modeling concept that shapes how code is organized. It is commonly used for maintainable application...
Class Method
Class Method is a software design or object-modeling concept that shapes how code is organized. It is commonly used for maintainable application architecture...
Command Bus
Command Bus is a software design or object-modeling concept that shapes how code is organized. It is commonly used for maintainable application architecture...
Command Line Interface
A Command Line Interface is a development concept used to shape how software is built, executed, or maintained in real systems. Developers rely on it to make...
Companion Object
A Companion Object is a development concept used to shape how software is built, executed, or maintained in real systems. Developers rely on it to make code...
Constructor
A special method that is automatically called when an object is instantiated from a class, responsible for initializing the object's state. In Python it is...
Constructor Injection
A Constructor Injection is a development concept used to shape how software is built, executed, or maintained in real systems. Developers rely on it to make...
Copy Constructor
A Copy Constructor is a development concept used to shape how software is built, executed, or maintained in real systems. Developers rely on it to make code...
Dataclass
A Dataclass is a development concept used to shape how software is built, executed, or maintained in real systems. Developers rely on it to make code easier to...
Dependency Injection
Dependency Injection is a design pattern where an object receives the other objects it depends on from an external source rather than creating them internally....
Derived Class
A Derived Class is a development concept used to shape how software is built, executed, or maintained in real systems. Developers rely on it to make code...
Derived Type
A type that inherits from or extends a base type, gaining its properties and behaviors while potentially adding or overriding them. Common in Fortran, C++, and...
Destructor
A special method called automatically when an object is destroyed or goes out of scope, used to release resources such as memory, file handles, or network...
Domain Object
A Domain Object is a development concept used to shape how software is built, executed, or maintained in real systems. Developers rely on it to make code...
Extension Method
An Extension Method is a development concept used to shape how software is built, executed, or maintained in real systems. Developers rely on it to make code...
Factory Method
A Factory Method is a development concept used to shape how software is built, executed, or maintained in real systems. Developers rely on it to make code...
Factory Pattern
The Factory pattern is a creational design pattern that delegates object creation to a dedicated method or class rather than using direct constructors. The...
Fluent Interface
A Fluent Interface is a development concept used to shape how software is built, executed, or maintained in real systems. Developers rely on it to make code...
Generic
A programming construct that allows types to be parameterized, enabling code to operate on different data types while maintaining compile-time type safety...
GObject
An object-oriented type system and framework for C, part of GLib, that provides classes, inheritance, interfaces, signals, and properties — effectively bolting...
Instance Method
An Instance Method is a development concept used to shape how software is built, executed, or maintained in real systems. Developers rely on it to make code...
Interface
A contract that defines a set of method signatures without implementations, which concrete classes must fulfill. Enables polymorphism, dependency inversion,...
Interface Segregation
An Interface Segregation is a development concept used to shape how software is built, executed, or maintained in real systems. Developers rely on it to make...
Java
A statically typed, object-oriented language whose 'write once, run anywhere' promise via the JVM made it the dominant enterprise language for two decades....
Late Binding
The practice of resolving a method call or symbol reference at runtime rather than compile time, enabling polymorphism by dispatching to the actual object's...
Liskov Substitution Principle
The 'L' in SOLID: a subtype must be substitutable for its base type without altering the correctness of the program. Concretely, if code works with a base...
Magic Method
A specially named method in Python (surrounded by double underscores, like `__init__`, `__getattr__`, `__add__`) that the interpreter calls implicitly in...
Mediator Pattern
A behavioral design pattern in which a central mediator object encapsulates how a set of objects interact, preventing them from referring to each other...
Metaclass
A class whose instances are themselves classes — it defines how classes behave, enabling customization of class creation, attribute access, and inheritance.
Metamethod
In Lua, a special function defined in a metatable that overrides default behavior for operations like addition, comparison, indexing, or string conversion on a...
Metatable
In Lua, a regular table attached to another table that defines fallback behavior through metamethods — enabling operator overloading, inheritance, and custom...
Method
A function defined on a class or type that operates on an instance's data, receiving the instance as an implicit or explicit first argument (e.g., `self` in...
Method Chaining
A coding style where each method returns the object itself (or a new modified copy), allowing multiple method calls to be strung together in a single...
Method Dispatch
The mechanism by which a language runtime determines which concrete method implementation to invoke for a given call, either at compile time (static dispatch)...
Method Override
A subclass providing its own implementation of a method already defined in a parent class, so that calls on the subclass instance execute the new behavior...
Method Resolution Order
The linearized sequence in which a language searches a class's inheritance hierarchy to find a method implementation, most famously computed in Python using...
Method Signature
The combination of a method's name, its parameter types and order, and (in some languages) its return type, which together uniquely identify the method and...
Mixin
A class or module that provides methods to other classes through inclusion rather than inheritance, allowing horizontal code reuse without the constraints of a...
Modifier
A keyword that changes the behavior or accessibility of a class, method, or variable — such as public, private, static, final, or abstract.
Null Object Pattern
A design pattern in which a special object implementing the expected interface but performing no operations (no-ops) is used in place of null references,...
Object
Object in programming is a fundamental concept in object-oriented programming (OOP) representing a self-contained unit that bundles related data (called...
Object Graph
The directed graph formed by objects in memory and their references to one another, where nodes are object instances and edges are fields or properties...
Objective-C
A superset of C that adds Smalltalk-style message passing, used as the primary language for Apple's macOS and iOS development before Swift. Objective-C's...
Object-Relational Mapping
A technique (and family of libraries such as Hibernate, SQLAlchemy, and Prisma) that maps database tables to classes and rows to object instances, allowing...
Open-Closed Principle
The 'O' in SOLID: software entities (classes, modules, functions) should be open for extension but closed for modification — meaning you can add new behavior...
Operator Overloading
A language feature that allows developers to redefine the behavior of built-in operators (like +, ==, []) for custom types, enabling natural syntax for...
Overload
To define multiple functions or methods with the same name but different parameter lists (type, number, or order of arguments), allowing the compiler or...
Override
To redefine a method inherited from a parent class in a subclass, replacing the parent's implementation with new behavior while preserving the same method...
Parent Class
A class from which another class (the child or subclass) inherits fields and methods, also called a superclass or base class. The parent class defines shared...
Polymorphism
The ability of different types to respond to the same interface — a function or method behaves differently depending on the type of object it's called on,...
Private Field
A class member variable that is only accessible within the class that declares it, enforcing encapsulation by preventing external code from reading or...
Property
A named attribute of an object or class that stores data or computes a value. In many languages, properties use getter/setter methods behind a field-like...
Property Accessor
A getter or setter method that intercepts reads and writes to an object property, allowing computed values, validation, or side effects to occur transparently...
Prototype Pattern
A creational design pattern where new objects are created by cloning an existing prototype instance rather than constructing from scratch, which is useful when...
Proxy Pattern
A structural design pattern in which a surrogate object controls access to another object, presenting the same interface while adding behavior such as lazy...
Receiver
In Go, the typed parameter before a method name (func (r *MyType) DoSomething()) that binds the method to that type, analogous to 'this' or 'self' in other...
Reference Type
A type whose variables hold a reference (pointer) to data on the heap rather than the data itself, meaning assignment copies the reference, not the object — so...
Ruby
A dynamic, object-oriented scripting language designed for developer happiness and productivity. Ruby's elegant syntax and the Ruby on Rails web framework...
Sealed Class
A class that restricts which other classes can inherit from it, typically requiring all subclasses to be defined in the same file or module, enabling...
Service
A self-contained unit of functionality — either a standalone network process (as in microservices) or an application-layer class that encapsulates business...
Setter
A method (or language-level property accessor) that controls how a value is assigned to an object's internal field, allowing validation, transformation, or...
Singleton
A Singleton is a creational design pattern that restricts a class to exactly one instance and provides a global point of access to it. No matter how many times...
Smalltalk
The language that defined object-oriented programming as we know it. Developed at Xerox PARC alongside the modern GUI, Smalltalk treats everything as an object...
Software Design
The process of defining the internal structure of software components — class hierarchies, module interfaces, data models, and algorithms — to satisfy...
SOLID
Five object-oriented design principles: Single responsibility, Open-closed, Liskov substitution, Interface segregation, Dependency inversion. Formalized by...
State Pattern
A behavioral design pattern in which an object delegates behavior to interchangeable state objects, each representing a distinct state, so that the object...
Static Method
A method defined on a class rather than on instances of it, callable without creating an object. It has no access to instance state (no `this`/`self` binding...
Strategy Pattern
A behavioral design pattern that encapsulates interchangeable algorithms behind a common interface, letting the client switch strategies at runtime. Eliminates...
Structural Pattern
A category of design patterns from the Gang of Four that deal with composing classes and objects into larger structures while keeping them flexible and...
Subclass
A class that inherits from another class (its superclass), gaining all of the parent's fields and methods while being able to override or extend them. A...
Subtype
A type that can be safely used wherever its supertype is expected, satisfying the Liskov Substitution Principle. If `Cat` is a subtype of `Animal`, then any...
Super
A keyword in object-oriented languages (Java, JavaScript, Python, Swift, Kotlin) that refers to the parent class, used to call the superclass constructor...
Superclass
The parent class from which a subclass inherits its fields and methods. A superclass defines the shared interface and default behavior that all its descendants...
Template Method Pattern
A behavioral design pattern in which an abstract base class defines the skeleton of an algorithm in a method, deferring certain steps to subclass overrides —...
Utility Class
A class that contains only static methods and no instance state, serving as a namespace for related helper functions. Common in Java (e.g., Collections, Math,...
Value Object
An object defined by its attribute values rather than a unique identity — two value objects with the same fields are considered equal. Value objects are...
Virtual Function
A member function declared with the virtual keyword in C++ (or overridable by default in Java/C#) that supports dynamic dispatch — the actual function called...
Virtual Method
A method declared in a base class (with the 'virtual' keyword in C++ or C#) that can be overridden by subclasses, with the actual implementation selected at...
Virtual Method Table
A per-class lookup table of function pointers used by compilers (particularly C++ and C#) to implement dynamic dispatch of virtual methods. Each object with...
Virtual Table
Short for virtual method table (vtable) — the compiler-generated array of function pointers that enables runtime polymorphism in languages like C++ and C#....
Visitor Pattern
A behavioral design pattern that separates an algorithm from the object structure it operates on by defining a visitor interface with a visit method for each...

Related Topics