Задачи по ООП на Java?
А что там понимать то? Любую книжку открыть (Во всех книгах, тем более по Java, есть раздел ООП) и прочитать что такое ООП и как работает. Понять что такое Полиморфизм, Инкапсуляция, Наследование и Абстракция. Разобраться как это работает, изучить синтаксис того или иного языка и все. Дел то на 1-2 дня. В итоге написать любую более менее большую иерархию классов. И все. Дальше уже применять ООП на решении реальных задач.
По книгам - это классика Хорсманн, Эккель, Блох. Есть еще headfirst, но там всё как-то слишком по-детски разжевано с картинками, хотя кому-то так нагляднее. В остальном полностью поддерживаю evg_.