This document introduces object-oriented programming (OOP) concepts, contrasting it with procedural programming and elaborating on principles like objects, classes, and UML diagrams. It covers access modifiers, constructors, method overloading, and the distinction between static and instance variables, emphasizing their roles in class design and object manipulation. Additionally, it concludes with practice exercises aimed at reinforcing the discussed topics.