@frankielaguna I’ve definitely noticed the lack of informative material that studies class design in itself that helps someone step from early beginnings to practical OOP. That’s probably the reason OOP has to “click”, if it doesn’t come to you in a dream, there’s no other way to tell you exactly what it’s all about!
What I can say is that there are two extremes: beginners who basically write their entire script as one class, and the “OOP happy”, so to speak, who make a class for every. little. thing. In my experience, successful and readable OOP code is somewhere in the middle.
While the examples you’ll find, like the iconic “Person” class, or “Car” class, seem a little far from reality and not like something you’ll approach in the wild, they are actually usable examples if you take them literally. OOP is a different way of organizing your program, not just a fancy struct. Consider those parts of your program that are objects in and of themselves. I’ve been halfway through writing classes only to realize that a big chunk of that class should have its own class, uniquely identified on its own. This largely stems from a lack of planning.
Classes are not just a collection of data, but a way of conceptualizing that data. I don’t meant to patronize you if you already know all of this, but I know getting over that speedbump was a big step when I first learned OOP.