Как научиться правильно использовать классы?
Ваш вопрос относится к архитектуре приложения, а не к "как правильно использовать классы".

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

Мой ответ - пишите как хотите (это в себе подразумевает и "как нравится" и " как легче" и "как левая пятка захочет"). Вы только учитесь, и если вы не гений, то, полюбому, сначала напишите не правильно. Так что - тренируйтесь, и , как следствие, учитесь.
Курить принципы SOLID, GRASP, DI, и т.д. Паттерны, опять же. Во время сочинения кода проверять, соответствуют ли твои идеи этим принципам. Конечная цель - "сильная связность и слабая зацепленность", тогда твой код сможет быть простым и понятным.
Но всё в меру.