# Object Oriented Programming
All Object Oriented Programming notes →1 — Evolution of Programming Paradigms
Surveys Machine Programming, Procedural Programming, Structured Programming, Modular Programming, Object-Oriented Programming, Functional Programming, Event-Driven Programming, Reactive Programming, and Comparing Programming Paradigms as the core sub-topics of evolution of programming paradigms.
2 — Why OOP Exists
Surveys Software Complexity, Code Reusability, Maintainability, Real-world Modeling, Separation of Concerns, and Abstraction vs Implementation as the core sub-topics of why oop exists.
3 — Objects and Classes
Surveys Objects, Classes, State, Behavior, Identity, Object Lifetime, and Object Relationships as the core sub-topics of objects and classes.
1 — Fields and Methods
Covers Instance Variables, Static Variables, Instance Methods, Static Methods, Constructors, Method Invocation, and Object Initialization as the core sub-topics of fields and methods.
2 — Access Modifiers
Covers Public, Private, Protected, Package/Internal, Visibility Rules, and Encapsulation Boundaries as the core sub-topics of access modifiers.
3 — Object Lifecycle
Covers Object Creation, Constructors, Initialization Order, Finalization, Garbage Collection, Resource Management, and RAII vs GC as the core sub-topics of object lifecycle.
1 — Encapsulation
Explains Information Hiding, Data Protection, Getters & Setters, Immutable Objects, and Defensive Copying as the core sub-topics of encapsulation.
2 — Abstraction
Explains Interfaces, Abstract Classes, APIs, Implementation Hiding, and Domain Modeling as the core sub-topics of abstraction.
3 — Inheritance
Explains IS-A Relationship, Base Classes, Derived Classes, Method Overriding, Constructor Chaining, Multiple Inheritance, and Diamond Problem as the core sub-topics of inheritance.
4 — Polymorphism
Explains Compile-Time Polymorphism, Runtime Polymorphism, Method Overloading, Method Overriding, Virtual Functions, Dynamic Dispatch, VTables, and Late Binding as the core sub-topics of polymorphism.
1 — Association
Distinguishes One-to-One, One-to-Many, and Many-to-Many as the core sub-topics of association.
2 — Aggregation
Distinguishes Weak Ownership, Shared Objects, and Lifecycle Independence as the core sub-topics of aggregation.
3 — Composition
Distinguishes Strong Ownership, Lifecycle Dependency, and Composition over Inheritance as the core sub-topics of composition.
4 — Dependency
Distinguishes Uses-A Relationship, Constructor Injection, Method Injection, and Dependency Graph as the core sub-topics of dependency.
1 — SOLID Principles
Breaks down Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion — the five pillars of class-level design discipline.
2 — GRASP Principles
Breaks down Information Expert, Creator, Controller, Low Coupling, High Cohesion, Indirection, Pure Fabrication, and Protected Variations as the core sub-topics of grasp principles.
3 — Object-Oriented Metrics
Breaks down Coupling, Cohesion, Complexity, Stability, and Maintainability as the core sub-topics of object-oriented metrics.
1 — Interfaces vs Abstract Classes
Examines Differences, Trade-offs, Language Implementations, and Interview Questions as the core sub-topics of interfaces vs abstract classes.
2 — Object Equality
Examines Identity, Equality, Hash Codes, Value Objects, and Reference Objects as the core sub-topics of object equality.
3 — Immutability
Examines Immutable Objects, Thread Safety, Builders, and Persistent Data Structures as the core sub-topics of immutability.
4 — Object Cloning
Examines Shallow Copy, Deep Copy, Copy Constructors, and Prototype Pattern as the core sub-topics of object cloning.
5 — Object Serialization
Examines Serialization, Deserialization, Versioning, and Security Concerns as the core sub-topics of object serialization.
1 — Memory Layout
Explains Stack, Heap, Object Headers, References, and Object Alignment as the core sub-topics of memory layout.
2 — Dynamic Dispatch
Explains Virtual Tables, Interface Dispatch, Runtime Type Information, and Reflection as the core sub-topics of dynamic dispatch.
3 — Garbage Collection
Explains Reachability, Mark & Sweep, Generational GC, Reference Counting, and Memory Leaks as the core sub-topics of garbage collection.
1 — Creational Patterns
Catalogs Singleton, Factory Method, Abstract Factory, Builder, and Prototype — the patterns that control how objects get created.
2 — Structural Patterns
Catalogs Adapter, Bridge, Composite, Decorator, Facade, Flyweight, and Proxy — the patterns that compose objects into larger structures.
3 — Behavioral Patterns
Catalogs Observer, Strategy, State, Command, Chain of Responsibility, Visitor, Iterator, Mediator, Template Method, Interpreter, and Memento — the patterns that govern how objects communicate and share responsibility.
1 — Java OOP
Tours Object Model, JVM, Interfaces, Default Methods, Records, and Sealed Classes as the core sub-topics of java oop.
2 — C# OOP
Tours Properties, Delegates, Events, Records, Extension Methods, and Partial Classes as the core sub-topics of c# oop.
3 — C++ OOP
Tours Multiple Inheritance, Virtual Functions, Templates, RAII, and Smart Pointers as the core sub-topics of c++ oop.
4 — Python OOP
Tours Duck Typing, Multiple Inheritance, Mixins, and Metaclasses as the core sub-topics of python oop.
5 — JavaScript & TypeScript OOP
Tours Prototype Chain, Classes, Mixins, and Decorators as the core sub-topics of javascript & typescript oop.
1 — Domain-Driven Design Basics
Examines Entities, Value Objects, Aggregates, Repositories, and Domain Services as DDD's core building blocks.
2 — OOP in Distributed Systems
Examines how object modeling changes once objects cross process boundaries — Microservices, Service Boundaries, DTOs, Contracts, and APIs.
3 — OOP and Concurrency
Examines how Shared State, Synchronization, Immutable Objects, and the Actor Model interact with object design.
4 — OOP Anti-Patterns
Examines God Object, Blob, Anemic Domain Model, Shotgun Surgery, Spaghetti Objects, and Inheritance Abuse as the core sub-topics of oop anti-patterns.
1 — Frequently Asked Interview Questions
Drills Explain OOP to a Beginner, Why Encapsulation Matters, Why Composition Over Inheritance, Interface vs Abstract Class, Overloading vs Overriding, Static vs Dynamic Binding, Object vs Class, Equality vs Identity, Deep Copy vs Shallow Copy, and SOLID Interview Questions as the core sub-topics of frequently asked interview questions.
2 — Coding Problems
Drills Design Parking Lot, Design Library System, Design Hotel Booking, Design Elevator, Design ATM, Design Chess, Design Tic Tac Toe, and Design Notification System as classic OOD interview prompts.
3 — Object-Oriented Design Interviews
Drills Requirement Gathering, Identifying Objects, Relationships, Responsibilities, UML Sketching, Applying SOLID, Trade-off Analysis, and Extensibility as the core sub-topics of object-oriented design interviews.
1 — UML Class Diagrams
Reference appendix entry for sketching class diagrams — classes, attributes, methods, and relationship notation used throughout this book.
10 — 200+ MAANG OOP Interview Questions
Reference bank of 200+ OOP interview questions spanning conceptual, coding, and design-interview formats.
2 — UML Sequence Diagrams
Reference appendix entry for sequence diagrams — object interactions and message ordering over time.
3 — UML State Diagrams
Reference appendix entry for state diagrams — modeling object lifecycle and state transitions.
4 — UML Activity Diagrams
Reference appendix entry for activity diagrams — modeling control flow and business logic across objects.
5 — Common OOP Interview Pitfalls
Reference appendix entry cataloging recurring mistakes candidates make when applying OOP concepts under interview pressure.
6 — OOP Cheat Sheet
One-page reference summarizing every OOP concept covered in this book for rapid pre-interview review.
7 — SOLID Cheat Sheet
One-page reference summarizing the five SOLID principles and their interview-ready one-liners.
8 — Design Pattern Selection Matrix
Reference matrix mapping problem shapes to the GoF pattern that solves them, for quick pattern selection under interview time pressure.
9 — Language Feature Comparison
Side-by-side comparison of how Java, C#, C++, Python, and TypeScript implement core OOP features.
Object-Oriented Programming for MAANG Interviews
A book-shaped table of contents for OOP: paradigm foundations, the four pillars, object relationships, SOLID/GRASP design principles, memory and runtime internals, GoF design patterns, language-specific OOP, and OOP at system scale — cross-linking existing pattern, concurrency, and low-level-design notes instead of duplicating them.