# OOP glossary

83 OOP terms, from Novice to Master. Start with the basics or jump to a level.

Updated: October 12, 2026

## Novice

- [Behavior](https://www.ask-codey.com/glossary/behavior): What an object can do; the methods it offers.
- [Blueprint](https://www.ask-codey.com/glossary/blueprint): The common analogy for a class: a plan used to build many objects.
- [Class](https://www.ask-codey.com/glossary/class-oop): The template that describes what data and actions its objects will have.
- [Constructor](https://www.ask-codey.com/glossary/constructor-oop): A special method that runs when an object is created and sets its starting values.
- [Instance](https://www.ask-codey.com/glossary/instance-oop): An object created from a class; each instance has its own data.
- [Method](https://www.ask-codey.com/glossary/method-oop): A function that belongs to a class and describes something its objects can do.
- [Object](https://www.ask-codey.com/glossary/object-oop): One specific thing in a program, with its own data and actions.
- [Object-Oriented Programming](https://www.ask-codey.com/glossary/object-oriented-programming): A way of organizing code around objects that bundle data with the actions that use it.
- [Property](https://www.ask-codey.com/glossary/property-oop): A piece of data that an object holds, such as a name or a price.
- [State](https://www.ask-codey.com/glossary/state): The current values of an object's data at a moment in time.

## Apprentice

- [Abstract](https://www.ask-codey.com/glossary/abstract): A class or function that must be overridden.
- [Access Modifier](https://www.ask-codey.com/glossary/access-modifier): A keyword that defines what other code is allowed to see or execute this code.
- [Base Class](https://www.ask-codey.com/glossary/base-class-oop): The class that other classes inherit from; it holds what they share.
- [Child Class](https://www.ask-codey.com/glossary/child-class): Another name for a derived class: a class that inherits from a parent class.
- [Derived Class](https://www.ask-codey.com/glossary/derived-class-oop): A class that inherits from another class and can add to it.
- [Encapsulation](https://www.ask-codey.com/glossary/encapsulation-oop): Keeping an object's data private so it can only change through the object's own methods.
- [Getter](https://www.ask-codey.com/glossary/getter-oop): A method or property part that reads a value from an object.
- [Inheritance](https://www.ask-codey.com/glossary/inheritance-oop): Letting a class reuse and extend the data and methods of another class.
- [Instance Member](https://www.ask-codey.com/glossary/instance-member): Data or a method that belongs to each individual object.
- [Method Overloading](https://www.ask-codey.com/glossary/method-overloading-oop): Several methods with the same name but different parameters.
- [Method Overriding](https://www.ask-codey.com/glossary/method-overriding-oop): A child class replacing an inherited method with its own version.
- [Object Identity](https://www.ask-codey.com/glossary/object-identity): Every object is its own separate thing, even if its data matches another object.
- [Parent Class](https://www.ask-codey.com/glossary/parent-class): Another name for a base class: the class a child class inherits from.
- [Polymorphism](https://www.ask-codey.com/glossary/polymorphism-oop): Different objects responding to the same method call in their own way.
- [Private](https://www.ask-codey.com/glossary/private-oop): An access level that hides the member from all code outside its own class.
- [Protected](https://www.ask-codey.com/glossary/protected-oop): An access level visible to the class itself and its child classes only.
- [Public](https://www.ask-codey.com/glossary/public-oop): An access level that lets any code use the member.
- [Setter](https://www.ask-codey.com/glossary/setter-oop): A method or property part that changes a value, often checking it first.
- [Static Member](https://www.ask-codey.com/glossary/static-member): Data or a method that belongs to the class itself, shared by all objects.
- [this / self](https://www.ask-codey.com/glossary/this-self): The keyword a method uses to refer to the object it was called on.

## Journeyman

- [Abstract Class](https://www.ask-codey.com/glossary/abstract-class): A class that cannot be created directly, but must be inherited.
- [Abstract Method](https://www.ask-codey.com/glossary/abstract-method): A method signature without a method body that must be overridden.
- [Aggregation](https://www.ask-codey.com/glossary/aggregation-oop): A loose "has-a" relationship where the parts can exist without the whole.
- [Association](https://www.ask-codey.com/glossary/association-oop): Any relationship where one object knows about or uses another.
- [Big-O Notation](https://www.ask-codey.com/glossary/big-o-notation): Big-O Notation refers to how complex code is.
- [Cohesion](https://www.ask-codey.com/glossary/cohesion): How closely the things inside a class belong together; high cohesion is the goal.
- [Composition](https://www.ask-codey.com/glossary/composition-oop): Building an object out of other objects it owns ("has-a").
- [Composition over Inheritance](https://www.ask-codey.com/glossary/composition-over-inheritance): Advice to build behavior by combining objects instead of deep inheritance chains.
- [Coupling](https://www.ask-codey.com/glossary/coupling): How much one piece of code depends on another; loose coupling is the goal.
- [Dependency](https://www.ask-codey.com/glossary/dependency-oop): Something a class needs in order to do its job, like a database or an email sender.
- [Downcasting](https://www.ask-codey.com/glossary/downcasting): Treating a parent-typed variable as a specific child type; can fail, so check first.
- [Dynamic Dispatch](https://www.ask-codey.com/glossary/dynamic-dispatch-oop): Choosing which version of a method to run based on the object's real type, at run time.
- [Immutable Object](https://www.ask-codey.com/glossary/immutable-object): An object whose data cannot change after it is created.
- [Interface](https://www.ask-codey.com/glossary/interface-oop): A list of methods a class promises to provide, with no code of its own.
- [Is-a vs Has-a](https://www.ask-codey.com/glossary/is-a-vs-has-a): A quick test: "is-a" suggests inheritance, "has-a" suggests composition.
- [Mixin](https://www.ask-codey.com/glossary/mixin): A small reusable bundle of methods that can be added to unrelated classes.
- [Sealed / Final Class](https://www.ask-codey.com/glossary/sealed-final-class): A class that no other class is allowed to inherit from.
- [UML Class Diagram](https://www.ask-codey.com/glossary/uml-class-diagram): A diagram of classes as boxes, with lines showing how they relate.
- [Upcasting](https://www.ask-codey.com/glossary/upcasting): Treating an object as its parent type; always safe and automatic.
- [Value Object](https://www.ask-codey.com/glossary/value-object): An object defined only by its values; two with equal values are equal.
- [Virtual Method](https://www.ask-codey.com/glossary/virtual-method-oop): A method that child classes are allowed to override.

## Freelancer

- [Abstraction](https://www.ask-codey.com/glossary/abstraction): Abstraction is the concept of focussing on only what is needed to solve the current…
- [Adapter Pattern](https://www.ask-codey.com/glossary/adapter-pattern): A pattern that makes one interface look like another, like a travel plug adapter.
- [Builder Pattern](https://www.ask-codey.com/glossary/builder-pattern): A pattern for building a complicated object step by step.
- [Decorator Pattern](https://www.ask-codey.com/glossary/decorator-pattern): A pattern that wraps an object to add behavior without changing its class.
- [Dependency Injection](https://www.ask-codey.com/glossary/dependency-injection): Handing a class the things it needs instead of letting it create them.
- [Dependency Inversion Principle](https://www.ask-codey.com/glossary/dependency-inversion-principle): Depend on interfaces, not on specific implementations.
- [Design Pattern](https://www.ask-codey.com/glossary/design-pattern): A named, proven solution to a common code design problem.
- [DRY Principle](https://www.ask-codey.com/glossary/dry-principle): "Don't Repeat Yourself": keep each piece of knowledge in one place.
- [Factory Pattern](https://www.ask-codey.com/glossary/factory-pattern): A pattern that puts object creation in one place so callers don't pick the class.
- [Interface Segregation Principle](https://www.ask-codey.com/glossary/interface-segregation-principle): Prefer small, focused interfaces so classes only provide what they need.
- [Law of Demeter](https://www.ask-codey.com/glossary/law-of-demeter): A method should talk to its direct collaborators, not reach deep into their parts.
- [Liskov Substitution Principle](https://www.ask-codey.com/glossary/liskov-substitution-principle): A child class must work anywhere its parent class is expected, without surprises.
- [Observer Pattern](https://www.ask-codey.com/glossary/observer-pattern): A pattern where subscribers are notified automatically when something changes.
- [Open/Closed Principle](https://www.ask-codey.com/glossary/open-closed-principle): Add new behavior by adding code, not by changing code that already works.
- [Repository Pattern](https://www.ask-codey.com/glossary/repository-pattern): A pattern that hides data storage behind a simple collection-like interface.
- [Single Responsibility Principle](https://www.ask-codey.com/glossary/single-responsibility-principle): A class should have one job, and so only one reason to change.
- [Singleton Pattern](https://www.ask-codey.com/glossary/singleton-pattern): A pattern that allows only one object of a class for the whole program.
- [SOLID Principles](https://www.ask-codey.com/glossary/solid-principles): Five guidelines for keeping object-oriented code easy to change.
- [Strategy Pattern](https://www.ask-codey.com/glossary/strategy-pattern): A pattern where interchangeable classes each hold one way of doing a task.
- [Tell, Don't Ask](https://www.ask-codey.com/glossary/tell-don-t-ask): Tell an object what to do instead of pulling its data out and deciding for it.

## Master

- [Aggregate Root](https://www.ask-codey.com/glossary/aggregate-root): The single entry object for a group of related objects, guarding their rules.
- [Anemic Domain Model](https://www.ask-codey.com/glossary/anemic-domain-model): Classes that hold only data while all the business rules live somewhere else.
- [Command Pattern](https://www.ask-codey.com/glossary/command-pattern): A pattern that turns an action into an object so it can be queued or undone.
- [Covariance and Contravariance](https://www.ask-codey.com/glossary/covariance-and-contravariance): Rules for when a more specific or more general type can stand in for another.
- [Diamond Problem](https://www.ask-codey.com/glossary/diamond-problem): The confusion when a class inherits the same method through two parents.
- [Domain-Driven Design](https://www.ask-codey.com/glossary/domain-driven-design): Designing code around the real business, its vocabulary and its rules.
- [Entity](https://www.ask-codey.com/glossary/entity-oop): An object defined by a lasting identity (an ID), not by its values.
- [Fragile Base Class Problem](https://www.ask-codey.com/glossary/fragile-base-class-problem): When a change to a parent class unexpectedly breaks its child classes.
- [Inversion of Control Container](https://www.ask-codey.com/glossary/inversion-of-control-container): A framework tool that creates objects and supplies their dependencies automatically.
- [Object Pool](https://www.ask-codey.com/glossary/object-pool): A set of ready-made objects that are reused instead of created fresh each time.
- [Template Method Pattern](https://www.ask-codey.com/glossary/template-method-pattern): A pattern where a base class fixes the steps and child classes fill some of them in.
- [Visitor Pattern](https://www.ask-codey.com/glossary/visitor-pattern): A pattern that adds new operations to classes by moving them into visitor classes.

[More subjects in Programming Fundamentals](https://www.ask-codey.com/glossary/groups/programming-fundamentals)

Source: https://www.ask-codey.com/glossary/subjects/oop
