Skip to content

Oop Principles Textbook

A free, self-paced textbook in 8 chapters. Read a chapter, then drill it with the 50 companion flashcards using spaced repetition.

8 chapters · 50 cards · Updated

Chapters

  1. 1The Four Pillars of OOP

    Object-oriented programming rests on four foundational concepts that together shape how we model and organize software. Encapsulation is the practice of bundling data and the metho...

  2. 2The SOLID Design Principles

    The SOLID principles, introduced by Robert C. Martin (often called Uncle Bob), are five design guidelines that together promote maintainable, flexible, and testable object-oriented...

  3. 3Classes, Objects, and Language Mechanics

    At the heart of OOP lies the distinction between a class and an object, and the related idea of object identity versus equality. A class is a blueprint or template that defines att...

  4. 4Object Relationships

    Beyond the structure of individual classes, object-oriented systems are defined by how objects relate to one another. Association is the most general form of relationship, where on...

  5. 5Polymorphism and Method Dispatch

    Polymorphism in object-oriented programming is enabled by two distinct mechanisms known as overloading and overriding. Method overloading, the form of compile-time polymorphism, oc...

  6. 6Abstraction Through Interfaces and Abstract Classes

    Abstraction in OOP is most often expressed through abstract classes and interfaces, two related but distinct constructs. An abstract class is one that cannot be instantiated and ma...

  7. 7Composition, Inheritance, and Code Reuse

    Both composition and inheritance are ways to build classes out of other classes, but they capture fundamentally different relationships. Inheritance models an is-a relationship, as...

  8. 8General Software Design Principles

    Beyond the SOLID principles, several general design principles guide object-oriented programming toward clearer, more maintainable code. The DRY principle, Don't Repeat Yourself, h...

← Back to the Oop Principles deck