if you want to learn OOP stay away from classes..classes are just a mechanism to create objects. Focus on objects and their interactions first...then think about classes later on. Design pattern is too much about classes..A good book for OOP is OOP roles, responsibility design by Rebecca which focus on objects and their roles, then design pattern for flow control...after that you can pick up DCI to rethink about the use of classes (less important).
happy OOP, always !!!
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.