Object-Oriented Programming (OOP) Explained: A Complete Guide