Long time ago when I started programming in C# which is a really difficult language to learn and is a high level language in .Net world, I was very impressed by its object oriented nature and enjoyed playing around with it. Clearly you could identify and manage OOP structure in this language. But it takes a bit of time to learn coding around it.
The more you write code in this way, the better you get at implementing the structure and philosophy of object oriented programming. And by the time you come to know that you are loving it.
It is not just tidiness and structural behaviour of the code that you love, but breaking down the code and its simplicity impresses you. And you will feel confident about every single part of your code as you structured it all the way around with the same concept and complexity.
But it is not easy to do it and that is why not every one goes around it. It takes time and time and perseverance. And it takes courage to do it because if you start you have to stick with it and be consistent in each and every line of your code.