Learning object-oriented programming is not simple. It might take years of experience until a programmer gets an in-depth understanding of this programming paradigm. Even when taking a course that is fully dedicated for this topic, the need in the practical experience of a few years (at the minimum) still exists. Sometimes even that doesn’t help. Based on my experience, it is highly recommended to visualize in our thoughts the various topics in object-oriented programming. Try to imagine the objects connected with each other, think about the classes as templates from which the objects are created, and try to reflect your thoughts on paper by drawing them. It is also highly recommended to try and get more than one explanation in each subtopic you learn. Try to use more than one textbook and read them simultaneously. Try to find videos with different explanations for the subtopic you try to learn.