This is a list of terms found in
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
.
A
*
Abstract class
*
Accessibility
*
Abstract method
*
Abstraction (computer science)
*
Access control
In physical security and information security, access control (AC) is the action of deciding whether a subject should be granted or denied access to an object (for example, a place or a resource). The act of ''accessing'' may mean consuming ...
*
Access modifiers
*
Accessor method
*
Adapter pattern
*
Aspect-oriented
B
*
Bridge pattern
*
Builder pattern
*
Base class
C
*
Cast
*
Chain-of-responsibility pattern
*
Class
Class, Classes, or The Class may refer to:
Common uses not otherwise categorized
* Class (biology), a taxonomic rank
* Class (knowledge representation), a collection of individuals or objects
* Class (philosophy), an analytical concept used d ...
*
Class hierarchy
*
Class method
*
Class object
*
Class variable
*
Cohesion
*
Collection class
*
Composition
*
Constructor
*
Container
A container is any receptacle or enclosure for holding a product used in storage, packaging, and transportation, including shipping.
Things kept inside of a container are protected on several sides by being inside of its structure. The term ...
*
Contravariance
*
Copy constructor
*
Coupling
*
Covariance
D
*
Data-driven design
*
Data hiding
*
Default constructor
*
Deep copy
*
Delegation
*
Dependency injection
*
Destructor
*
Dispatch table
*
Dynamic binding
*
Dynamic dispatch
*
Dynamically typed language
E
*
Early binding
*
Eigenclass
*
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 of direct access to some of that data, such as an object's components. Essentially, enca ...
*
European Conference on Object-Oriented Programming
*
Exception handling
In computing and computer programming, exception handling is the process of responding to the occurrence of ''exceptions'' – anomalous or exceptional conditions requiring special processing – during the execution of a program. In general, an ...
*
Extension
F
*
Facade - pattern
*
Factory method pattern
*
Factory object
*
Factory pattern
*
Field
*
Finalizer
In computer science, a finalizer or finalize method is a special method that performs finalization, generally some form of cleanup. A finalizer is executed during object destruction, prior to the object being deallocated, and is complementary ...
*
First-class function
In computer science, a programming language is said to have first-class functions if it treats function (programming), functions as first-class citizens. This means the language supports passing functions as arguments to other functions, returning ...
*
Fragile base class
*
Function composition
In mathematics, the composition operator \circ takes two function (mathematics), functions, f and g, and returns a new function h(x) := (g \circ f) (x) = g(f(x)). Thus, the function is function application, applied after applying to . (g \c ...
G
*
Generic programming
*
God object
H
*
Heap-based memory allocation
*
Helper class
*
Hybrid language
I
*
Immutable object (also called immutable value)
*
Information hiding
*
Inheritance
Inheritance is the practice of receiving private property, titles, debts, entitlements, privileges, rights, and obligations upon the death of an individual. The rules of inheritance differ among societies and have changed over time. Offi ...
*
Initialize
*
Inline function
In the C (programming language), C and C++ programming languages, an inline function is one qualified with the Keyword (computer programming), keyword inline; this serves two purposes:
# It serves as a compiler directive that suggests (but doe ...
*
Inner class
*
Instance (computer science)
In computer science, an instance is an occurrence of a software element that is based on a type definition. When created, an occurrence is said to have been ''instantiated'', and both the creation process and the result of creation are called '' ...
*
Instance method
A method in object-oriented programming (OOP) is a Procedure (computer science), procedure associated with an Object (computer science), object, and generally also a Message passing, message. An object consists of ''state data'' and ''behavior''; ...
*
Instance variable
In class-based, object-oriented programming, an instance variable is a variable defined in a class (i.e., a member variable), for which each instantiated object of the class has a separate copy, or instance. An instance variable has similari ...
(also called data member)
*
Interaction diagram
*
Interface
*
Inversion of control (IoC)
*
Iterator
In computer programming, an iterator is an object that progressively provides access to each item of a collection, in order.
A collection may provide multiple iterators via its interface that provide items in different orders, such as forwards ...
L
*
Late binding
*
Liskov substitution principle
M
*
Member accessibility
*Members, any contents of a class:
Attributes,
Methods, and
Inner classes
*
Message passing
In computer science, message passing is a technique for invoking behavior (i.e., running a program) on a computer. The invoking program sends a message to a process (which may be an actor or object) and relies on that process and its supporting ...
*
Metaclass
*
Metaprogramming
*
Method (computer programming)
A method in object-oriented programming (OOP) is a procedure associated with an object, and generally also a message. An object consists of ''state data'' and ''behavior''; these compose an ''interface'', which specifies how the object may be u ...
*
Mixin
*
Mock object
*
Mock trainwreck
*
Model–view–controller
Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements. These elements are:
* the model, the internal representat ...
(MVC)
*
Modular programming
Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect or "concern" of the d ...
*
Multiple dispatch
Multiple dispatch or multimethods is a feature of some programming languages in which a Subroutine, function or Method (computer programming), method can be dynamic dispatch, dynamically dispatched based on the run time (program lifecycle phase), ...
*
Multiple inheritance
*
Multitier architecture
*
Mutable variable
*
Mutator method
N
*
Name mangling
*
Namespace
In computing, a namespace is a set of signs (''names'') that are used to identify and refer to objects of various kinds. A namespace ensures that all of a given set of objects have unique names so that they can be easily identified.
Namespaces ...
*
Native method
*
Nested class
O
*
Object (computer science)
In software development, an object is an entity that has state, behavior, and identity. An object can model some part of reality or can be an invention of the design process whose collaborations with other such objects serve as the mechanisms ...
*
Object type
*
OOPSLA – annual conference on Object-Oriented Programming, Systems, Languages, and Applications
*
Open/closed principle
*
Orthogonality
In mathematics, orthogonality is the generalization of the geometric notion of '' perpendicularity''. Although many authors use the two terms ''perpendicular'' and ''orthogonal'' interchangeably, the term ''perpendicular'' is more specifically ...
*
Overload
P
*
Package
*
Parametric overloading
*
Parameterized classes
*
Parnas's principles
*
Partial class
*
Patterns
*
Policy-based design
*
Polymorphic
*
Primitive data type
*, a way of
encapsulation in
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
*
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 be classified as supporting one or more paradigms.
Paradigms are separated along and descri ...
*, a way of
encapsulation in
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
*
Protocol
*
Prototype pattern
*
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 existing objects that serve as prototypes. This model can also be known as ''prototypal'', ...
*{{Cpp, public, a way of
encapsulation in
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
*
Pure polymorphism
*
Pure virtual function (also called pure virtual method)
R
*
Rapid application development (sometimes
Rapid prototyping)
*
Recursion
Recursion occurs when the definition of a concept or process depends on a simpler or previous version of itself. Recursion is used in a variety of disciplines ranging from linguistics to logic. The most common application of recursion is in m ...
*
Refinement
*
Reflective programming
In computer science, reflective programming or reflection is the ability of a process to examine, introspect, and modify its own structure and behavior.
Historical background
The earliest computers were programmed in their native assembly lang ...
(reflection)
*
Responsibility-driven design
Responsibility-driven design is a design technique in object-oriented programming, which improves encapsulation by using the client–server model. It focuses on the contract by considering the actions that the Object (computer science), object i ...
*
Reverse polymorphism
*
Run-time type information
In computer programming, run-time type information or run-time type identification (RTTI) is a feature of some programming languages (such as C++, Object Pascal, and Ada) that exposes information about an object's data type at runtime. Run-time ...
S
*
Scope
*
Shallow copy, in contrast to ''deep copy''
*
Single responsibility principle
*
Singleton pattern
*
Singly rooted hierarchy
*
Slicing
*
Specification class, a class implementing
abstract class
*
Stack-based memory allocation
*
Static method
*
Static typing
In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a ''type'' (for example, integer, floating point, string) to every '' term'' (a word, phrase, or other set of symbols). Usu ...
, in contrast to ''dynamic typing''
*
Strong and weak typing
In computer programming, one of the many ways that programming languages are colloquially classified is whether the language's type system makes it strongly typed or weakly typed (loosely typed). However, there is no precise technical definition o ...
*
Subclass (also called child class or derived class)
*
Subclass coupling
*
SOLID
Solid is a state of matter where molecules are closely packed and can not slide past each other. Solids resist compression, expansion, or external forces that would alter its shape, with the degree to which they are resisted dependent upon the ...
*
Substitutability, principle of
*
Subtype
*
Superclass (also called parent class or base class)
T
*
Tiers
*
Template method pattern
*
Test-driven development
*
Trait
*
Type
*
Type conversion (also called ''typecasting'')
V
*
Virtual class
*
Virtual function
In object-oriented programming such as is often used in C++ and Object Pascal, a virtual function or virtual method is an inheritable and overridable function or method that is dispatched dynamically. Virtual functions are an important part ...
(also called virtual method)
*
Virtual function pointer (also called virtual method pointer)
*
Virtual inheritance (Object Oriented Programming)
*
Virtual method table
In computer programming, a virtual method table (VMT), virtual function table, virtual call table, dispatch table, vtable, or vftable is a mechanism used in a programming language to support dynamic dispatch (or run-time method binding).
...
(also called vtable, virtual function table or virtual method table)
*Viscosity (programming)
*
Void type
W
*
Weak reference
Y
*
Yo-yo problem
List
Object-oriented programming terms