If you've ever seen a NullPointerException in a log, you know how frustrating it can be. You basically have no idea what happened and why. The stack trace is completely useless and you're left debugging an application that you didn't necessarily write. What is this and why does it happen? How do you avoid it?
So you've been programming for a while, and you are still stumped with what object-oriented programming actually is? Then this may be the guide for you. We'll take a departure from traditional explanations and look at a new way of explaining OOP.