1. Introduction |
Introduction to OOP |
- What is OOP? Why use it?
- Comparison with Procedural Programming.
- Overview of the 4 Pillars of OOP.
|
- Understand the purpose and benefits of OOP.
- Differentiate object-oriented thinking.
|
2. Core Concepts |
Class and Object |
- Class is a Blueprint, Object is an Instance.
- Attributes and Methods.
- Constructor and Destructor.
|
- Define classes, declare attributes and methods.
- Create and manage objects from classes.
|
3. Pillars 1 & 2 |
Encapsulation & Inheritance |
- Encapsulation: Public, Private, Protected; Getters & Setters.
- Inheritance: Base Class, Derived Class; Method Overriding.
|
- Apply access modifiers for data hiding.
- Build class hierarchies for code reuse.
|
4. Pillars 3 & 4 |
Polymorphism & Abstraction |
- Polymorphism: Static (Compile-time) and Dynamic (Run-time).
- Abstraction: Abstract Class and Interface.
|
- Write more flexible code with polymorphism.
- Design contracts using interfaces.
|
5. Advanced |
Relationships & Components |
- Composition vs. Inheritance.
- Association, Aggregation, Composition.
- Static Members.
|
- Understand and choose the right relationships between classes.
- Use static members for shared data/methods.
|
6. Design |
SOLID Principles & Design Patterns |
- Study the 5 SOLID principles.
- Learn about common Design Patterns: Creational, Structural, Behavioral.
|
- Write more maintainable, scalable, and understandable code.
- Apply proven solutions to design problems.
|
7. Practice |
Practical Application |
- Apply all knowledge to a small project (e.g., library management system, simple game).
- Refactor old code according to OOP principles.
- Learn to draw UML Class Diagrams.
|
- Build a complete project using OOP.
- Be able to read and design basic software architecture.
|