А чем отличаются классы от переменных?
Классы это пользовательские типы данных, такие же как строка, флоат, массив. Они просто описывают, какими свойствами обладают объекты типа. А переменные это уже конкретные штуки в памяти, которые имеют свой тип. Например это может быть строка, в может объект какого-то класса.