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
- Design (14 terms in common)
- Architecture (12 terms in common)
- Design Patterns (10 terms in common)
- Programming (9 terms in common)
- Inheritance (9 terms in common)
- Code (9 terms in common)
- Abstraction (8 terms in common)
- Polymorphism (8 terms in common)
- Type System (5 terms in common)
- Language (5 terms in common)
- C++ (5 terms in common)
- Classes (4 terms in common)
- Gang Of Four (3 terms in common)
- Python (3 terms in common)
- Type Systems (3 terms in common)
- Pattern (3 terms in common)
- Design Principles (3 terms in common)
- Typing (3 terms in common)
- Metaprogramming (3 terms in common)
- Solid (2 terms in common)