Это может казаться чем-то чуждым и ненужным после освоения процедурного программирования, но вообще ничего сильно сложного.
Для меня это пройденная тема и азы в рамках моей работы, поэтому она кажется мне очень простой. Достаточно немного попрактиковаться в написании собственных классов и взаимодействий между ними, чтобы всё это понять.